Nodemon 不会在文件更改时重新启动

Nodemon not restarting on file change

  "scripts": {
    "start": "npm run prod",
    "build": "npm-run-all clean transpile",
    "server": "node ./dist/bin/www",
    "dev": "npm run lint && NODE_ENV=development nodemon --inspect=notifications:9236 --exec babel-node bin/www",
    "prod": "NODE_ENV=production npm-run-all build server",
    "transpile": "babel ./ --out-dir dist",
    "lint": "eslint '*.js' ",
    "lint:watch": "watch 'npm run lint' ",
    "precommit": "npm run lint",
    "prepush": "npm run lint",
    "clean": "rimraf dist",
    "test": "jest"
  }

我在 docker 上有多个微服务,每个微服务的 package.json 中都包含相似的脚本。 每当我进行更改并保存文件时,nodemon 都不会检测到更改并重新启动服务器。

Nodemon 会在微服务启动时启动,并输出以下内容:

[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): **/* public/**/*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `babel-node --inspect=notifications:9236 bin/www`

我不得不提一下,这是一个建立在 Mac OS 上的项目,我目前 运行 它在 Windows 上,如果它有任何相关的话。

在您尝试 运行 的任何启动脚本中,您需要包含 nodemon

例如:

"start": "nodemon run prod"

也许已经是这样了,但是你有你的代码文件夹吗?因为如果您不使用卷与 dockerized 文件共享本地更改,它不会更新,因为文件将保持不变

它与 windows 相关,因为 运行 unix

容器中的文件系统差异

如果你设置 nodemon.json 轮询更改它应该更新,但它非常昂贵的内存

{
 "verbose": true,
 "watch": ["src/**/*.ts"],
 "exec": "ts-node ./src/index.ts",
 "pollingInterval": 100,
 "legacyWatch": true
}