Ale*_*lls 13 node.js npm nodemon
我想使用$>npm start它并使用"nodemon"进行开发,使用"node"进行生产.我不能把条件逻辑放在我的package.json文件中,那么最好的方法是什么呢?
您应该能够将NPM的start用作常规的shell脚本。
"scripts": {
"start": "if [$NODE_ENV == 'production']; then node app.js; else nodemon app.js; fi"
}
Run Code Online (Sandbox Code Playgroud)
现在启动您的服务器进行生产
$ NODE_ENV='production' npm start
Run Code Online (Sandbox Code Playgroud)
或用于发展
$ NODE_ENV='development' npm start
Run Code Online (Sandbox Code Playgroud)
nodemon实际上读取了package.start值,所以如果你只是将start属性设置为你在生产中所拥有的属性node app.js,那么运行nodemon而不带任何参数,它将package.start按照你在开发中的预期运行并重新启动.
我喜欢丹尼尔的解决方案,但认为把它放在一个单独的文件中会更加清晰startup.sh:
#!/bin/sh
if [ "$NODE_ENV" = "production" ]; then
node src/index.js;
else
nodemon src/index.js;
fi
Run Code Online (Sandbox Code Playgroud)
然后只需将package.json更改为:
"scripts": {
"start": "../startup.sh"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10090 次 |
| 最近记录: |