如何创建自定义命令来替换`gulp`或`npm run`?

Sui*_*ape 6 node.js npm gulp gulp-sass package.json

如何为NPM项目编写自己的终端命令,这将取代gulp命令而不依赖于npm run

我的项目包含以下Gulphttp-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 命令

lee*_*sio 3

我通常通过使用Commander编写一个小型 CLI ,然后将一个bin条目添加到package.json指向 CLI 文件来实现此目的。

    {
      ...
      "author": "",
      "license": "ISC",
      "bin":{
        "boom": "boom-cli.js"
      ...
    }
Run Code Online (Sandbox Code Playgroud)

然后从项目的根目录运行 或npm install -gnpm link -g

如果我没记错的话,npm link -g会在你的包和保存全局安装的 npm 包的位置之间创建一个符号链接,这对我来说更可取,因为我喜欢经常更改内容。

是关于该主题的很好的资源。