【转】前端脚手架搭建(一)node全局命令和调试方式
原地址:https://zhuanlan.zhihu.com/p/268312210
node全局命令
- package.json 增加bin选项, 使用这个,在package.json提供一个映射到本地本地文件名的bin字段,一旦被引入后,npm将软链接这个文件到prefix/bin里面,以便于全局引入,或者在./node_modules/.bin/目录里
"bin": { "jfet": "./bin/jfet" },
- 使用node执行
#!/usr/bin/env node const cli = require('../lib'); cli.run(process.argv[2]);
node包调试方式
使用 npm link进行软链接测试
- npm link npm link将会在全局包{prefix}/lib/node_modules/下面创建一个指向命令执行的地方的符号链接。同时也会创建一个{prefix}/bin/{name}下面对应的bin包。 另一种情况下,npm link package-name 将会创建一个从global包指向当前文件夹node_modules/下对应的链接。 注意:package-name是依据package.json的name而非文件名称。
- 在对应要测试的包进行
npm link
根据 该包 使用这个包的package.json进行全局软链接 - 然后在对应要使用的地方
npm link package-name
安装这个测试包(软链接)
配合vscode进行debugger
参考配置 launch.json 可以通过修改入参进行不同的调试
{ "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "args": ["doc", "--build"], "program": "${workspaceFolder}/packages/jfet/bin/jfet" } ] }
开始开发
gitclone https://github.com/h5webtools/workflow 主要看 package下的 jfet入口目录和插件 jfet-doc
- jfet 先进行 npm link
- jfet-doc
node调试时候注意: 在哪个目录执行调试命令, 需要保证该目录或上级目录有对应的node(测试)包, 原理同npm找包的顺序
- npm link
- 然后在对应要调试的目录进行 npm link 包名
命令插件
参考 https://github.com/yargs/yargs/blob/master/docs/advanced.md#providing-a-command-module
这个以后会详解, 通过 jfet-doc
npm 包发布
需选择对应源 - 发布 npm publish - 强制删除 npm unpublish --force