🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] <br> <br> # 初始化 创建 sura_cli 目录,并使用`npm init`创建 `package.json` 文件: ~~~ mkdir sura_cli && cd sura_cli npm init ~~~ <br> <br> # 编写代码 ## 修改 `package.json` 在交互询问中输入相应参数,其中 `name` 参数检验 `npm` 中是否已占用,`main`为入口js: ~~~ // package.json { "name": "sura_cli", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } ~~~ 在里面添加一个 `bin` 字段,表示本 npm 包的可执行文件位于 `./bin/sura`: ``` "bin": { "sura": "./bin/sura" }, ``` <br> ## 添加脚本 创建 `bin` 文件夹,并在其中创建 `sura` 文件。这个js文件是已经编译好的,符合ES5语法的,可直接执行的。 需要在文件前输入 `#!/usr/bin/env node ` 指定 Linux系统执行此脚本需要启动的应用。 ~~~ #!/usr/bin/env node ~~~ 具体参考 [https://github.com/surahe/sura\_cli](https://github.com/surahe/sura_cli) ## 常用依赖 * chalk * commander * inquirer * ora * shelljs * download-git-repo <br> <br> # 本地测试 `npm link`命令可以将你开发的npm包链接到对应的项目中,在该项目中,你就可以直接通过命令来执行你开发的npm包了。 1. 开发的npm包根目录下执行`npm link`. 2. 在需要使用该包的项目根目录下执行`npm link <name>`,`name` 是你开发的 npm 包所在的文件夹的名称。 3. 在项目下执行包的命令测试。 <br> <br> # 发布到npm 1. 首先在package.json中配置发布的仓库。若是不设置,将默认发布到npm官网。 ~~~ "publishConfig": { "registry": "" //仓库地址 }, ~~~ 2. 在npm官网注册用户。[官网注册地址](https://link.juejin.im?target=https%3A%2F%2Fwww.npmjs.com%2Fsignup) 3. 在你开发的包下面首先添加你的账户。按照提示依次输入用户名,密码,注册邮箱信息。 ~~~ // 在根目录执行命令 > npm adduser 复制代码 ~~~ 4. 若是你之前有添加过你的账户,那么你可以直接执行`npm login`命令。 5. 登陆之后,执行`npm publish`命令,你的包就成功发布了。 <br> <br> # 参考资料 [vue-cli3 项目优化之通过 node 自动生成组件模板 generateView](https://segmentfault.com/a/1190000018056163) [面试官:请简述一下vue-cli命令行工具,你能自己手写一个吗?](https://juejin.im/post/5b4168bf6fb9a04f83462f6c) [pm2](https://github.com/Unitech/pm2) [自建node的简单cli——san-cli](https://www.jianshu.com/p/29d96811e7e3)