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


当前回答

对我来说,问题是我正在使用pkg库将我的应用程序转换为可执行二进制文件。在这种情况下,公认的解决方案是行不通的。然而,使用下面的代码解决了我的问题:

const NODE_ENV = (<any>process).pkg ? 'production' : process.env.NODE_ENV;

我在GitHub上找到了这个解决方案。

其他回答

在电子Js中

"scripts": {
    "start": "NODE_ENV=development electron index.js",
},

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

NODE_ENV=development node server.js

更容易,不是吗?:)

如果你在React中遇到这个问题,你需要react-scripts@0.2.3和更高的版本。此外,对于NODE_ENV以外的其他环境变量,它们需要使用REACT_APP_作为前缀。

tips

在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"

or

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

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