如何在npm脚本中使用nodemon来构建和启动脚本?

Con*_*sea 4 javascript babel node.js npm nodemon

"scripts": {
  "build": "babel src -d lib",
  "start": "node --use_strict ./lib/index.js",
  "watch": "nodemon lib/index.js --exec npm run build"
}
Run Code Online (Sandbox Code Playgroud)

使用该命令会npm run watch导致运行以下错误命令:[nodemon] starting "npm lib/index.js run build"

我如何编写一个nodemon命令,在重新加载时,使用babel转换代码并重新加载代码?

fis*_*ick 14

  "scripts": {
    "build": "babel src -d lib",
    "start": "node --use_strict ./lib/index.js",
    "watch": "nodemon --exec \"npm run build && node lib/index.js\" -e js --ignore lib/"
  }
Run Code Online (Sandbox Code Playgroud)

然后跑npm run watch。此后,每次.js修改源代码(文件)时,nodemon将重建项目,然后重新启动服务器。

--execnode lib/index.js指定当文件发生更改时您希望 nodemon 执行哪些非节点脚本(也适用于上面的节点脚本)。

-e指定您希望 nodemon 监视的文件扩展名。

--ignore指定您希望 nodemon 忽略的文件/目录。这个选项对于解决这个问题至关重要,因为如果你不指定忽略这个lib/文件夹,nodemon将无限重启,因为里面的编译文件lib/也是.js文件。


Ром*_*еев 6

您可以简单地运行代码babel-node以避免显式转换.

$ nodemon lib/index.js --exec babel-node --presets=es2015,stage-2
Run Code Online (Sandbox Code Playgroud)

好像这是推荐使用的方式nodemonbabel.

请注意,在远程运行环境时,运行--exec 可能会产生意想不到的副作用developmentlocalhost