Node.js – nodemon vs node – 开发与生产

我想使用$>npm start ,并使用“nodemon”进行开发,使用“node”进行生产。 我不能把条件逻辑放在我的package.json文件中,那么最好如何实现呢?

nodemon实际上读取的是package.start值,所以如果你只是将start属性设置为生产中的值,比如node app.js ,那么不需要任何参数就可以运行nodemon,它将以package.start运行并重启你会期待开发。

你应该可以使用NPM的开始作为一个普通的shell脚本。

 "scripts": { "start": "if [$NODE_ENV == 'production']; then node app.js; else nodemon app.js; fi" } 

现在开始你的服务器生产

 $ NODE_ENV='production' npm start 

或为了发展

 $ NODE_ENV='development' npm start 

我喜欢丹尼尔的解决scheme,但认为它会更清洁,把它放在一个单独的文件startup.sh

 #!/bin/sh if [ $NODE_ENV = "production" ]; then node src/index.js; else nodemon src/index.js; fi 

然后把package.json改为:

 "scripts": { "start": ". ./startup.sh" },