在express.js环境中使用。有什么建议吗?
当前回答
对于Windows Powershell使用此命令
$env:NODE_ENV="production" ; node app.js
其他回答
export NODE_ENV=production是坏的解决方案,重启后消失。
如果你不想再担心这个变量了,把它添加到这个文件中:
/etc/environment
不要使用导出语法,只需写(如果已经有一些内容,则在新行中):
NODE_ENV=production
重启后即可工作。你将不必再输入导出NODE_ENV=生产命令,任何地方,只要使用节点与任何你想要的-永远,pm2…
对于英雄:
heroku config:set NODE_ENV="production"
也就是默认。
Daniel给出了一个很棒的答案,这是正确部署(设置并忘记)过程的更好方法。
对于那些使用快递的人。 你也可以使用grunt-express-server,这也很棒。 https://www.npmjs.org/package/grunt-express-server
npm start --mode production
npm start --mode development
与 process.env。NODE_ENV = '生产'
为了不必担心你是在Windows、Mac还是Linux上运行脚本,请安装cross-env包。然后你可以很容易地使用你的脚本,像这样:
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
对这个包的开发人员的巨大支持。
npm install --save-dev cross-env
为了拥有多个环境,您需要之前的所有答案(NODE_ENV参数并导出它),但我使用了一种非常简单的方法,不需要安装任何东西。在你的包裹里。Json只是为你需要的每个env放一个脚本,就像这样:
...
"scripts": {
"start-dev": "export NODE_ENV=dev && ts-node-dev --respawn --transpileOnly ./src/app.ts",
"start-prod": "export NODE_ENV=prod && ts-node-dev --respawn --transpileOnly ./src/app.ts"
}
...
然后,要启动应用程序,而不是使用npm start,使用npm run script-prod。
在代码中,您可以使用process.env.NODE_ENV访问当前环境。
喉咙痛。
推荐文章
- 反应钩子-正确的方式清除超时和间隔
- TypeScript枚举对象数组
- 在React.js中正确的img路径
- 在OSX 10.11中安装Scrapy时,“OSError: [Errno 1]操作不允许”(El Capitan)(系统完整性保护)
- 在React.js中更新组件onScroll的样式
- onClick ReactJS调用多个函数
- 如何在JavaScript中转义单引号(')?
- Ng-repeat结束事件
- 谷歌MAP API未捕获的类型错误:无法读取属性“offsetWidth”为空
- 模糊vs聚焦-有什么真正的区别吗?
- 如何使用JavaScript创建和样式一个div ?
- 如何在Mac OS X 10.6中使硬件发出哔哔声
- 清除JavaScript中的缓存
- 如何在使用Javascript替换DOM元素?
- 环境变量存储在Windows注册表的哪里?