如何创建自定义命令来替换“gulp”或“npm 运行”?

How do I create a custom command to replace `gulp` or `npm run`?

如何为 NPM 项目编写自己的终端命令,从而在不依赖 npm run 的情况下取代 gulp 命令?

我的项目包含以下 Gulp and 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 文件中定义了脚本,这就是我使用当前命令的方式。我想要的是编写我自己的项目 commands/scripts 来完成与我列出的相同的事情,而不必键入 npm run.

例子

我通常使用 commander 编写一个小型 CLI,然后将 bin 条目添加到指向 CLI 文件的 package.json 中。

    {
      ...
      "author": "",
      "license": "ISC",
      "bin":{
        "boom": "boom-cli.js"
      ...
    }

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

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

This 是关于该主题的良好资源。

运行 npm install 只是没帮到我。需要 运行 npm link 帮助我 运行 CLI 命令。

其中 npm link 在输出中创建如下别名: 例子 : $LOCAL_DIR\cli-command -> $LOCAL_DIR\npm\node_modules$PROJECT\dist\index.js ...