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


当前回答

的过程。Env是对环境的引用,所以你必须在那里设置变量。

使用实例设置Windows环境变量。

SET NODE_ENV=development

在macOS / OS X或Linux上:

export NODE_ENV=development

其他回答

我也遇到过这个问题。 我把。env文件移动到根文件夹(不是项目文件夹,更高级别),它工作了。

检查它。这也可能对你有帮助

定义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试图使这个工作。

你可以从npm中使用dotenv包,这里是链接:https://www.npmjs.com/package/dotenv

它允许您将所有配置放在.env文件中

在包中。我们必须像下面这样配置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”命令

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

NODE_ENV=development node server.js

更容易,不是吗?:)