process.env.NODE_ENV未定义

2020/10/22 22:41 · javascript ·  · 0评论

我正在尝试遵循有关NodeJ的教程。我不认为我会错过任何事情,但是每当我调用时,process.env.NODE_ENV我得到的唯一值就是不确定的。根据我的研究,默认值应为“开发”。如何动态设置此值以及最初在哪里设置?

process.env是对您的环境的引用,因此您必须在此处设置变量。

在Windows中设置环境变量

SET NODE_ENV=development

在OS X或Linux上

export NODE_ENV=development

提示

package.json

"scripts": {
  "start": "set NODE_ENV=dev && node app.js"
 }

app.js

console.log(process.env.NODE_ENV) // dev
console.log(process.env.NODE_ENV === 'dev') // false
console.log(process.env.NODE_ENV.length) // 4 (including a space at the end) 

因此,这可能更好:

"start": "set NODE_ENV=dev&& node app.js"

要么

console.log(process.env.NODE_ENV.trim() === 'dev') // true

对于使用* nix(Linux,OS X等)的用户,没有理由通过第二个export命令来执行此操作,您可以将其链接为调用命令的一部分:

NODE_ENV=development node server.js

比较容易,不是吗?:)

在Windows上使用节点时,我们遇到了这个问题。

我们没有要求尝试运行该应用程序的任何人来设置这些变量,而是在该应用程序内提供了一个备用。

var environment = process.env.NODE_ENV || 'development';

在生产环境中,我们将根据常规方法(SET /导出)对其进行定义。

您可以使用cross-env npm软件包。它将负责修剪环境变量,并确保它可在不同平台上工作。

在项目根目录中,运行:

npm install cross-env

然后在您的package.json中的脚本下,添加:

"start": "cross-env NODE_ENV=dev node your-app-name.js"

然后在终端的项目根目录中,通过运行以下命令启动应用程序:

npm start

然后,该环境变量将在您的应用中以形式提供process.env.NODE_ENV,因此您可以执行以下操作:

if (process.env.NODE_ENV === 'dev') {
  // Your dev-only logic goes here
}

在package.json中,我们必须进行如下配置(适用于Linux和Mac OS)

重要的是下面的构建命令是一个示例之后,“ export NODE_ENV = production”:

  "scripts": {
     "start": "export NODE_ENV=production && npm run build && npm run start-server",
     "dev": "export NODE_ENV=dev && npm run build && npm run start-server",
  } 
  • 对于开发环境,我们必须点击“ npm run dev”命令

  • 对于生产环境,我们必须点击“ npm run start”命令

macOS中,对于那些使用Express版本4.x.xDOTENV插件的用户,需要这样使用:

  1. 安装插件导入后,在您启动应用程序的文件中,如下所示:
    require('dotenv').config({path: path.resolve(__dirname+'/.env')});

  2. 在根目录中,创建一个文件“ .env”并添加以下变量:

    NODE_ENV=development
    要么
    NODE_ENV = development

在UBUNTU中使用:

$ export NODE_ENV =测试

这是由于操作系统

在package.json文件中,确保具有脚本(其中app.js是要执行的主要js文件,而NODE_ENV在.env文件中声明)。

"scripts": {
    "start": "node app.js",
    "dev": "nodemon server.js",
    "prod": "NODE_ENV=production & nodemon app.js"
  }

对于窗户

还要设置具有NODE_ENV = development的.env文件变量

如果您的.env文件位于eg.config文件夹的文件夹中,请确保在app.js中指定(您的主js文件)

const dotenv = require('dotenv'); dotenv.config({path:'./config/config.env'});

如果您在React中遇到这个问题,则需要react-scripts@0.2.3及更高版本。另外,对于其他环境变量(不是NODE_ENV要在React中使用),也需要加上前缀REACT_APP_

尽早在您的应用程序中,要求并配置dotenv。

require('dotenv').config()

您还可以通过代码进行设置,例如:

process.env.NODE_ENV = 'test';

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

文件下载

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

上一篇:
下一篇:

评论已关闭!