比方说yarn,cnpm,vite等命令,无需执行node xxxx,可以自定义执行并完成一些操作
创建一个文件夹如下
在index.js中输入
#!/usr/bin/env node
console.log('hello world');
在package.json中添加
{
...,
"bin": {
"package": "bin/index.js" // package是我定义的命令,类似与yarn,vite等,你可以另外叫别的名字
}
}
最后执行
npm pack
就会生成一个压缩包,这个就是npm install的那个包,你可以手动安装
npm install ./你的压缩包名字 -g
这样你就可以通过你的命名的命令执行了
// 例子
package
// hello world
当你想实现类似于yarn add xxx的命令时,你可以在index.js中做以下操作
#!/usr/bin/env node
const { argv } = process; // 获取你输入的命令的参数
if(argv[2] === '-v') { // 如果你的命令是package, 当你输入package -v的时候就是输出v1.0.0,输入其他就会走下面的else流程,根据类似步骤,你就可以实现其他脚本命令,例如express --view=pug myapp
console.log('v 1.0.0') // 也可以使用 const { name,version } = require('../package.json'),然后在这里打印
} else {
console.log('更多精彩,敬请等待')
}