Nodemon 没有重新加载。这个 nodemon.json 文件有啥问题

Posted

技术标签:

【中文标题】Nodemon 没有重新加载。这个 nodemon.json 文件有啥问题【英文标题】:Nodemon not reloading. What's wrong with this nodemon.json fileNodemon 没有重新加载。这个 nodemon.json 文件有什么问题 【发布时间】:2017-10-03 20:45:02 【问题描述】:

这是我的 nodemon.json

 
    "watch": ["src/**/*.ts"],
    "exec": "node out/index.js" 

我通过执行来运行nodemon:

nodemon

在 nodejs 根目录中

这是输出:

 % nodemon                                                                                                     
[nodemon] 1.11.0                                                                                
[nodemon] to restart at any time, enter `rs`                                                                                                                       
[nodemon] watching: src/**/*.ts                                                                                                                       
[nodemon] starting node out/index.js
Yay! Started app!

但是当我在 src 中编辑任何 ts 文件时,nodemon 不会重新启动应用程序。

更新

运行nodemon --watch src/index.ts --exec 'node out/index.js'

在修改 index.ts 时运行并重新加载应用程序

但是,使用通配符运行

nodemon --watch 'src/**/*.ts' --exec 'node out/index.js'

nodemon --watch src --exec 'node out/index.js'

不重新加载应用程序。

【问题讨论】:

您将需要一个ts-node 包。参考:***.com/questions/37979489/… 我从您提供的链接开始,但它对我不起作用,因此我开始简化脚本并最终以那个链接结束。但它也不起作用 【参考方案1】:

解决了!

通过在详细模式下运行 nodemon,我发现默认情况下它只观看 *.js 文件,不管您正在观看什么通配符。因此在命令中添加-e ts 可以解决问题:

nodemon --watch src/ --exec 'node out/index.js' -e ts

如果有人使用nodemon.json,这是我修复后的:

 
    "watch": ["src"],
    "exec": "tsc && node out/index.js" ,
    "ext": "js, json, ts, proto"

【讨论】:

如果您正在执行node out/index.js,那么在out 目录中查看js 文件会更有意义 nodemon.json "watch": ["src/*", "package.json"], "ext": "ts js json" 在 package.json "scripts": "start": "nodemon -r source-map-support/register 。" , 当使用yarn start 运行时,你会得到$ nodemon -r source-map-support/register . [nodemon] 2.0.7 [nodemon] to restart at any time, enter rs [nodemon] watching path(s): src/**/* lb3app/server/**/* package.json [nodemon] watching extensions: ts,js,json [nodemon] starting node -r source-map-support/register . Server is running at http://127.0.0.1::3000【参考方案2】:

在 package.json 脚本中使用 single quotation 表示多值参数,例如 `--exec'。

例如我将"nodemon --exec npm run build-langs" 更改为"nodemon --exec 'npm run build-langs'" 并工作。

【讨论】:

以上是关于Nodemon 没有重新加载。这个 nodemon.json 文件有啥问题的主要内容,如果未能解决你的问题,请参考以下文章

尝试连接调试器时 Azure Functions 崩溃,导致 nodemon 永久重新加载

使用 nodemon 或 supervisor 仅重新加载文件而不重新启动所有服务器 - WebStorm

无法让 TypeScript 监视我的项目和 nodemon 重新加载它

文件更改时,两个带有 Nodemon 的后端服务器不会在 docker 容器中重新加载

nodemon 正在运行但没有输出?

打字稿更改后nodemon没有重新启动