前⾔
⽤过angular-cli,create-react-app这些脚⼿架的朋友们,不知道你们有没有好奇过,
为什么安装这些脚⼿架后,可以使⽤类似ng generate之类的命令。⼩弟研究了以下,原来是这样的。
package.json
贴⼀个简单的package.json
{
\"name\": \"arashiquan33-node-learn\ \"version\": \"1.1.0\
\"description\": \"learn node.js\
\"main\": \"module.js\包的⼊⼝⽂件 \"scripts\": {
\"test\": \"echo \\\"Error: no test specified\\\" && exit 1\" },
\"keywords\": [ \"node\ \"express\" ],
\"author\": \"arashiquan33\ \"license\": \"ISC\"}
接下来我们也给这个包制作⼀个命令,叫q-cli。
新建bin⽂件夹,创建q-cli.js
#!/usr/bin/env nodefunction run (argv) {
if (argv[0] === '-v' || argv[0] === '--version') { console.log(' version is 0.0.1');
} else if (argv[0] === '-h' || argv[0] === '--help') { console.log(' usage:\\n');
console.log(' -v --version [show version]'); } }
run(process.argv.slice(2));
#!/usr/bin/env node 这段话的意思是让使⽤ node 进⾏脚本的解释程序,那下⾯的就可以使⽤ node 的语法了process.argv.slice(2),//从进程中获取参数。
好了,上⾯这段脚本当被加载执⾏的时候,会⾸先执⾏run⽅法,并且传⼊进程输⼊的参数。
添加bin
好了,现在我们把bin需要的可执⾏js⽂件已经创建好,接下来需要在package.json中描述进去.
{
\"name\": \"arashiquan33-node-learn\ \"version\": \"1.1.0\
\"description\": \"learn node.js\ \"main\": \"module.js\ \"scripts\": {
\"test\": \"echo \\\"Error: no test specified\\\" && exit 1\" },
\"bin\": {
\"q-cli\": \"./bin/q-cli.js\" //告诉package.json,我的bin叫q-cli,它可执⾏的⽂件路径是bin/q-cli.js },
\"keywords\": [ \"node\ \"express\" ],
\"author\": \"arashiquan33\ \"license\": \"ISC\"
}
好了,现在换差最后⼀步我们就可以再命令⾏使⽤q-cli.
打成全局包
必须要打成全局包才可以使⽤该命令,打成全局包的命令npm install . -g或者npm link
好了,现在可以再命令⾏输⼊q-cli,
不知道⼤家明⽩bin的制作⽅法了没,觉得好了,点⼀波关注,双击666⾛起。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务