Sui*_*ape 6 node.js npm gulp gulp-sass package.json
如何为NPM项目编写自己的终端命令,这将取代gulp命令而不依赖于npm run?
我的项目包含以下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" |
Run Code Online (Sandbox Code Playgroud)
这是因为scripts它的package.json文件......
/// package.json
{
"scripts": {
"boom": "gulp",
"launch": "http-server -o"
},
"devDependencies": {
"gulp": "^3.9.0",
"gulp-sass": "^2.1.0",
"http-server": "^0.8.5"
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我真正喜欢的自定义命令...
## COMMANDS I WANT TO HAVE
| Command | Task |
|-------------|-----------------------------|
| boom | "Builds then watches files" |
| boom build | "Builds the assets files" |
| boom launch | "Starts a local server" |
Run Code Online (Sandbox Code Playgroud)
" 我可以向NPM添加调试脚本吗? " 与我要求的不一样.我已经在我的package.json文件中定义了脚本,这就是我当前命令的结果.我想要的是编写我自己的项目命令/脚本,它们执行与我列出的相同的操作,而无需键入npm run.
例
npm run boom 命令gulp命令boom 命令我通常通过使用Commander编写一个小型 CLI ,然后将一个bin条目添加到package.json指向 CLI 文件来实现此目的。
{
...
"author": "",
"license": "ISC",
"bin":{
"boom": "boom-cli.js"
...
}
Run Code Online (Sandbox Code Playgroud)
然后从项目的根目录运行 或npm install -g。npm link -g
如果我没记错的话,npm link -g会在你的包和保存全局安装的 npm 包的位置之间创建一个符号链接,这对我来说更可取,因为我喜欢经常更改内容。
这是关于该主题的很好的资源。