我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?
当前回答
如果您定义了任何名为process的函数,也可能会导致此问题。
其他回答
在macOS中,对于使用快速版4.x的用户。使用DOTENV插件,需要像这样使用:
在初始化应用程序的文件中安装插件导入后,如下所示: 要求(“dotenv”)。配置({路径:path.resolve (__dirname + / .env)}); 在根目录中创建一个文件'。Env '并添加如下变量: NODE_ENV =发展 或 NODE_ENV = development
你可以使用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
}
如果您定义了任何名为process的函数,也可能会导致此问题。
这是由于操作系统
在你的包裹里。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 '});
必须是app.js中的第一个要求
npm install dotenv
require("dotenv").config();