我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?
当前回答
定义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试图使这个工作。
其他回答
你可以使用cross-env npm包。它将负责调整环境变量,并确保它可以跨不同平台工作。
在项目根目录下运行:
npm install cross-env
然后在你的包裹里。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
}
我们在Windows上使用node时遇到了这个问题。
我们没有要求任何试图运行应用程序的人设置这些变量,而是在应用程序中提供了一个备用方案。
var environment = process.env.NODE_ENV || 'development';
在生产环境中,我们将根据通常的方法(SET/export)定义它。
我也遇到过这个问题。 我把。env文件移动到根文件夹(不是项目文件夹,更高级别),它工作了。
检查它。这也可能对你有帮助
安装dotenv模块
Require ('dotenv').config() //写入将要使用该变量的文件中
console.log(process.env.NODE_ENV) //返回保存在。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试图使这个工作。