在express.js环境中使用。有什么建议吗?
当前回答
为了拥有多个环境,您需要之前的所有答案(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访问当前环境。
喉咙痛。
其他回答
export NODE_ENV=production是坏的解决方案,重启后消失。
如果你不想再担心这个变量了,把它添加到这个文件中:
/etc/environment
不要使用导出语法,只需写(如果已经有一些内容,则在新行中):
NODE_ENV=production
重启后即可工作。你将不必再输入导出NODE_ENV=生产命令,任何地方,只要使用节点与任何你想要的-永远,pm2…
对于英雄:
heroku config:set NODE_ENV="production"
也就是默认。
在运行你的应用程序之前,你可以在控制台执行这个操作,
export NODE_ENV=production
或者如果你在窗口,你可以试试这个:
SET NODE_ENV=production
美国小妞PowerShell:
$env:NODE_ENV="production"
或者你可以这样运行你的应用:
NODE_ENV=production node app.js
你也可以在js文件中设置它:
process.env.NODE_ENV = 'production';
但我不建议在运行时文件中执行,因为在服务器中打开VIM并将其更改为生产环境并不容易。你可以进行配置。Json文件,每次你的应用程序运行时,它都会从中读取并设置配置。
为了拥有多个环境,您需要之前的所有答案(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访问当前环境。
喉咙痛。
为了不必担心你是在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
如果你在窗户上。打开你的cmd在右文件夹然后首先
set node_env={your env name here}
按enter键,然后就可以开始节点了
node app.js
它将从你的环境设置开始
推荐文章
- 在Node.js中读取文件
- 克隆对象没有引用javascript
- 验证字符串是否为正整数
- 如何获得一个键/值JavaScript对象的键
- 什么时候JavaScript是同步的?
- DeprecationWarning:当我将脚本移动到另一个服务器时,由于安全性和可用性问题,Buffer()已弃用
- 我如何确定正确的“max-old-space-size”为Node.js?
- 如何在Typescript中解析JSON字符串
- Javascript reduce()在对象
- 在angularJS中& vs @和=的区别是什么
- 错误"Uncaught SyntaxError:意外的标记与JSON.parse"
- JavaScript中的querySelector和querySelectorAll vs getElementsByClassName和getElementById
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别