我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?


当前回答

这是由于操作系统

在你的包裹里。json,确保有你的脚本(app.js是你要执行的主js文件,NODE_ENV是在.env文件中声明的)。例如:

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

对于windows

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

如果你的。env文件在一个文件夹,例如。Config文件夹确保在app.js(你的主js文件)中指定

Const dotenv = require('dotenv'); dotenv。Config ({path: './ Config / Config . path: ')env '});

其他回答

对于使用*nix (Linux, OS X等)的人来说,没有理由通过第二个导出命令来执行它,你可以将它作为调用命令的一部分:

NODE_ENV=development node server.js

更容易,不是吗?:)

在UBUNTU中使用:

$ export NODE_ENV=test

安装dotenv模块

Require ('dotenv').config() //写入将要使用该变量的文件中

console.log(process.env.NODE_ENV) //返回保存在。env文件中的值

如果您定义了任何名为process的函数,也可能会导致此问题。

定义process.env。NODE_ENV在包中。Windows/Mac/Linux:

以下是我在我的Mac (MacBook Pro 2019, 16英寸,大苏尔)上工作的方法:

"scripts": {
    "build": "export NODE_ENV=prod || set NODE_ENV=prod&& npx eslint . && node --experimental-json-modules ./backend/app.js && gulp",
},

使用export NODE_ENV=prod || set NODE_ENV= prod&&string可以在Windows和Linux中工作,但我还没有测试过。

如果有人能证实就太好了。

不幸的是,使用cross-env npm包在我的包中根本不起作用。json文件,我花了很长时间在我的Mac试图使这个工作。