一、创建自定义全局命令
1.1初始化脚手架项目
- 新建code文件(文件名任取,文件中新建bin文件夹及js文件)
code
├── bin # bin文件夹
│ └── cli.js
- 在code文件夹打开终端npm init初始化,构建出package.json文件
- 在bin/cli.js文件中指定node来执行当前文件,加入以下代码
#!/usr/bin/env node
- 还是在当前code文件的终端,运行npm link 创建一个全局的链接,这个时候就创建好了全局命令mycli(解释一下为什么这里是mycli的文件名,因为在package.json中项目名是mycli)
- 在终端执行mycli命令,执行结果如下图。(终端最好用cmd或git bash的方式,powershell的方式运行的时候会出现权限问题报错,如有报错具体可看blog.csdn.net/qq_41336022… )
- mycli命令相当于是在code/bin文件下面执行了node cli.js,如下
- 还有一个问题,mycli命令是怎么准确知道自己要执行的是bin/cli.js文件的,如果有bin/a.js文件呢? 在npm init之后,package.json文件中会生成bin对象,bin对象中mycli的值就是mycli命令执行的文件
但是!!!!在npm link之后如果去在package.json中修改这个路径,假设改为bin/a.js,执行的还是bin/cli.js,原因可以去看一下在node文件中mycli文件中的代码,如下,mycli文件内部依然执行的bin/cli.js
![]()
![]()
二、处理自定义全局命令参数
待补充
三、模块化拆分
待补充
四、命令问答
待补充
五、下载远程仓库
待补充
六、等待提示
待补充
七、命令行样式
待补充