如何在OS X中将NODE_ENV设置为生产/开发

2020/10/02 13:41 · javascript ·  · 0评论

用于express.js环境。有什么建议么?

在运行您的应用之前,您可以在控制台中执行此操作,

export NODE_ENV=production

或者,如果您在Windows中,则可以尝试以下操作:

SET NODE_ENV=production

对于PowerShell:

$env:NODE_ENV="production"

或者您可以这样运行您的应用程序:

NODE_ENV=production node app.js

您也可以在js文件中进行设置:

process.env.NODE_ENV = 'production';

但是我不建议在运行时文件中执行此操作,因为在服务器中打开VIM并将其更改为生产环境并不容易。您可以在目录中创建config.json文件,并且每次您的应用运行时,它都会从中读取并设置配置。

在package.json中:

{
  ...
  "scripts": {
    "start": "NODE_ENV=production node ./app"
  }
  ...
}

然后在终端中运行:

npm start

.env这里还没有人提到吗?.env在您的应用程序根目录中创建一个文件,然后require('dotenv').config()读取值。轻松更改,轻松阅读,跨平台。

https://www.npmjs.com/package/dotenv

export NODE_ENV=production 是错误的解决方案,重启后消失。

如果您不想再担心该变量,请将其添加到此文件中:

/etc/environment

不要使用导出语法,只需写(如果已有一些内容,则换行):

NODE_ENV=production

重新启动后可以正常工作。您将不再需要在任何地方重新输入export NODE_ENV = production命令,而只需将节点与任何您想要的东西一起使用-永远,pm2 ...

对于heroku:

heroku config:set NODE_ENV="production"

这实际上是默认设置。

不必担心您是在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
heroku config:set NODE_ENV="production"

对于Windows Powershell,请使用此命令

$env:NODE_ENV="production" ; node app.js

在OSX上,我建议添加export NODE_ENV=development~/.bash_profile和和/或~/.bashrc和/或中~/.profile

我个人将该条目添加到我的文件中,~/.bashrc然后~/.bash_profile ~/.profile导入该文件的内容,因此在整个环境中它都是一致的。

完成这些添加后,请确保重新启动终端以获取设置。

如果您在Windows上。在正确的文件夹中打开您的cmd,然后先

set node_env={your env name here}

点击Enter,然后您可以开始您的节点

node app.js

它将从您的环境设置开始

如果您在应用程序中使用webpack,则可以使用DefinePlugin...

因此,在您的plugin部分中,将NODE_ENV设置production

plugins: [
  new webpack.DefinePlugin({
    'process.env.NODE_ENV': '"production"',
  })
]

为了拥有多个环境,您需要所有答案(NODE_ENV参数并导出),但是我使用一种非常简单的方法而不需要安装任何内容。在您的package.json中,为您需要的每个环境放入一个脚本,如下所示:

...
"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 startuse npm run script-prod

在代码中,您可以使用访问当前环境process.env.NODE_ENV

Windows CMD-> set NODE_ENV=production

Windows Powershell-> $env:NODE_ENV="production"

MAC-> export NODE_ENV=production

Daniel有一个绝妙的答案,这是正确部署(设置并忘记)过程的更好方法。

对于那些使用快递的人。您也可以使用grunt-express-server。
https://www.npmjs.org/package/grunt-express-server

您可能已经制作了两个sequelize对象实例

例如:var con1 = new Sequelize(); var con2 = new Sequelize();

比也会发生同样的错误

本文地址:http://javascript.askforanswer.com/ruhezaios-xzhongjiangnode_envshezhiweishengchan-kaifa.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!