如何使跨环境和 nodemon 一起工作?

Posted

技术标签:

【中文标题】如何使跨环境和 nodemon 一起工作?【英文标题】:How can I make the cross-env and nodemon work together? 【发布时间】:2022-01-18 17:07:02 【问题描述】:

这是我的 package.json 片段。

"scripts": 
    "build": "react-scripts build",
    "dev": "cross-env NODE_ENV=development run-p server start",
    "eject": "react-scripts eject",
    "prod": "cross-env NODE_ENV=production node server", 
    "server":"nodemon -r dotenv/config ./server/index.js",
    "start": "react-scripts start",
    "test": "react-scripts test"
  ,    

当我执行以下命令时:

npm run dev

nodemon 工作正常。

但是,当我执行以下命令时:

npm run prod

nodemon 似乎无法正常工作。当我更改 ./server/index.js 的内容时,文件不会重新加载。

更改以下语句时有效:

"prod": "cross-env NODE_ENV=production node server", 

"prod": "cross-env NODE_ENV=production nodemon -r dotenv/config ./server/index.js", 

但是,我不想重复以下阶段:

"nodemon -r dotenv/config ./server/index.js". 

那么,你能告诉我如何让它按预期工作吗?

【问题讨论】:

【参考方案1】:

您应该使用nodemon.json 配置文件。 例如:

nodemon.json


  "watch": ["src"],
  "ext": "ts, js, json",
  "execMap": 
    "ts": "cross-env NODE_ENV=development ts-node -T"
  

然后进入package.json,您通常调用nodemon。例如:


  ...
  "scripts": 
    "start:dev": "nodemon ./src/server.ts",
  

这是typescript 的用法示例,但您可以重新调整为nodejs

【讨论】:

【参考方案2】:

终于找到了解决办法。

"scripts": 
     ..........    
     "dev": "cross-env NODE_ENV=development run-p server start",
     "eject": "react-scripts eject",
     "prod": "cross-env NODE_ENV=production npm run server", 
     "server":"nodemon -r dotenv/config ./server/index.js",
     ..........    
 ,   

【讨论】:

以上是关于如何使跨环境和 nodemon 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 node-inspector 与工头和 nodemon 一起运行?

nodemon,babel-node:如何设置环境变量?

无法让 nodemon/ts-node-dev 在 dockerized 平均堆栈上工作

Nodemon 正在使我的 Kubernetes 部署崩溃(导致问题的 node_modules)

如何将 nodemon 与 .env 文件一起使用?

json Gulp,BrowserSync,Node和Nodemon都协调工作。 ;)