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

标签 node.js npm gulp gulp-sass package.json

我如何为 NPM 项目编写自己的终端命令,而不依赖 npm run 来替换 gulp 命令?

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

这是因为 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 -gnpm link -g

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

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

关于node.js - 如何创建自定义命令来替换 `gulp` 或 `npm run`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957298/

相关文章:

javascript - Lite-server 未检测到 `bs-config.json` 或 `bs-config.js` 覆盖文件

gulp.watch - 返回或不返回

javascript - 将文档插入数据库之前的 MongoDB 空集合

node.js - 套接字方法的瓶颈?

node.js - 带有 create-react-app 的“npm start”未在 macOS 上启动服务器

node.js - npm "scripts": "start" run express and open url

laravel - gulp 构建语义用户界面非常慢

javascript - gulp - 如何在管道中运行某些内容并让下一个管道等待?

node.js - 在 webpack 构建期间登录到 Node 控制台或调试

javascript - 从服务器发送 2 组不同的错误消息