废话不多说!!!
新建一个空项目
初始化包
npm init -y
然后在package.json
新增两项
"bin": {
"qiji-cli": "./bin/index.js"
},
"private":false
bin目录下的qiji-cli表示,我们在命令行输入qiji-cli
会调用./bin/index.js
文件里面的内容;
“private”:false表示内容是公开的,可以被npm发布;
增加bin和index.js文件
在package.json
同级新增bin
文件,在bin
文件夹里面新增index.js
,目录结构如下
├─. gitignore
├─README.md
├─package.json
├─bin
| └index.js
编辑bin下面index.js文件,代码如下
const program = require('commander');
//version 版本号
//name 新项目名称
program
.version(require('../package').version) //获取版本号
.command('init <templateName> <projectName>')
program.parse(process.argv);
将当前package链接到全局,即可开启本地调试功能
- npm link //将当前package链接到全局,⚠️:不要与发布到npm的包重名,否则会安装失败
- npm unlink //反操作
- npm install -g // 将当前package安装到全局
- npm uninstall -g //反操作
可以在任意一个地方执行 qiji-cli
,看到如下表示成功
发布npm包
恭喜你,到这一步,就可以发布到npm上面了,发布npm包流程
发布失败可能一下情况:
- 即将要发布的包版本和npm线上包版本一直,报错提示如下:
下载npm包
npm i qiji-cli -g
qiji-cli -V
//查看包版本,注意-V
,V是大写
qiji-cli init projectname
如果报错Loading vue templateError: 'git clone' failed with status 128
:原因可能如下
projectname
本地已经存在,请换一个即可- 本地项目的package.json 中的name和bin 命令和发布到npm上面的包一样,导致本地无法测试
- 在第二章节才会遇到:
download-git-repo
git参数配置错误 - 包名字输入错误😂: