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" },