我如何为 NPM 项目编写自己的终端命令,而不依赖 npm run
来替换 gulp
命令?
我的项目包含以下 Gulp和 http-server自定义命令...
## COMMANDS I CURRENTLY HAVE
| Command | Task |
|-----------------------|-----------------------------|
| npm run boom | "Builds then watches files" |
| npm run boom -- build | "Builds the assets files" |
| npm run launch | "Starts a local server" |
这是因为 package.json
文件中的 scripts
...
/// package.json
{
"scripts": {
"boom": "gulp",
"launch": "http-server -o"
},
"devDependencies": {
"gulp": "^3.9.0",
"gulp-sass": "^2.1.0",
"http-server": "^0.8.5"
}
}
这是我真正希望我的自定义命令是...
## COMMANDS I WANT TO HAVE
| Command | Task |
|-------------|-----------------------------|
| boom | "Builds then watches files" |
| boom build | "Builds the assets files" |
| boom launch | "Starts a local server" |
编辑
“Can I add a debug script to NPM? ” 不 与我要问的相同。我已经在我的 package.json
文件中定义了脚本,这就是我使用当前命令的方式。我想要的是编写我自己的项目命令/脚本来执行与我列出的相同的事情,而无需键入 npm run
。
示例
- 我目前有
npm run boom
命令
- 它有什么作用?
- 运行
gulp
命令
- 运行
- 我希望在项目中使用什么命令,而不是做同样的事情?
boom
命令
最佳答案
我通常通过使用 commander 编写一个小型 CLI 来做到这一点然后将 bin
条目添加到指向 CLI 文件的 package.json
中。
{
...
"author": "",
"license": "ISC",
"bin":{
"boom": "boom-cli.js"
...
}
然后从项目的根目录运行 npm install -g
或 npm link -g
。
如果我没记错的话,npm link -g
在您的包和保存全局安装的 npm 包的任何地方之间创建一个符号链接(symbolic link),这对我来说更可取,因为我喜欢经常更改东西。
This是关于该主题的良好资源。
关于node.js - 如何创建自定义命令来替换 `gulp` 或 `npm run`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957298/