在学习这篇教程之前,你需要先了解NodeJs,NPM和一些常用的shell命令!
从零开始创建一个命令行工具
1.创建一个项目
$ mkdir my-cli
$ cd my-cli
$ npm init
通过上面的步骤,创建了我们的项目my-cli,并且初始化了package.json文件
{
"name": "my-cli",
"version": "0.0.1",
"description": "cli demo",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"license": "ISC",
}
2.新建一个可执行文件
在my-cli文件下创建bin/index.js文件,在js文件的头部加上一行代码使其成为一个可执行文件
#!/usr/bin/env node
console.log("hello word!")
3.指定bin/index.js为执行文件
修改package.json的bin字段
{
"bin": {
"my-cli": "bin/index.js"
}
}
4.本地调试cli包 :npm link 命令
我们在项目根目录下执行npm link命令后,就可以全局使用my-cli命令了。
测试一下:
$ my-cli
Hello world!
5.发布为npm包
1)去npm官网注册一个账号,然后去邮箱验证通过
2)输入命令npm adduser
或npm login
按照提示输入账号密码 ( 注:输入密码时不会显示出来)
3)在项目根目录输入命令npm publish ,成功后再你的npm网站就能看到这个package
npm publish 发布报错,可能有一下两个原因:
-
仓库被设成了淘宝镜像库 ,改回
image.pngnpm set registry "https://registry.npmjs.org/"
-
意思是你没有发布这个包的权限,确认你登录的是这个包的用户,也就是说包名重复了,修改package.json文件中的name
image.png
6. 退出登录 npm logout
7. 删除包
npm unpublish [<@scope>/]<pkg>@<version>
npm unpublish [<@scope>/]<pkg> --force
示例:
网友评论