我正在尝试遵循有关NodeJ的教程。我不认为我会错过任何事情,但是每当我调用时,process.env.NODE_ENV
我得到的唯一值就是不确定的。根据我的研究,默认值应为“开发”。如何动态设置此值以及最初在哪里设置?
我正在尝试遵循有关NodeJ的教程。我不认为我会错过任何事情,但是每当我调用时,process.env.NODE_ENV
我得到的唯一值就是不确定的。根据我的研究,默认值应为“开发”。如何动态设置此值以及最初在哪里设置?
Answers:
process.env是对您的环境的引用,因此您必须在此处设置变量。
SET NODE_ENV=development
在OS X或Linux上:
export NODE_ENV=development
export NODE_ENV=development
在Mac终端上执行,然后再react-native run-ios
从同一终端上执行。调试时,的值process.env.NODE_ENV
未定义。
提示
在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"
要么
console.log(process.env.NODE_ENV.trim() === 'dev') // true
"start": "set NODE_ENV=dev&& node app.js"
console.log(process.env.NODE_ENV.length)
// 4(末尾包含一个空格)
console.log(('' + process.env.NODE_ENV).trim() === 'dev') // true
,因为即使未定义process.env.NODE_ENV,它也不会引发错误。
对于使用* nix(Linux,OS X等)的用户,没有必要通过第二个export命令来执行此操作,您可以将其链接为调用命令的一部分:
NODE_ENV=development node server.js
比较容易,不是吗?:)
您可以使用cross-env npm软件包。它将负责修剪环境变量,并确保它可在不同平台上工作。
在项目根目录中,运行:
npm install cross-env
然后在您的package.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
}
在package.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”命令
在UBUNTU中使用:
$ export NODE_ENV =测试
这是由于操作系统
在package.json文件中,确保具有脚本(其中app.js是要执行的主要js文件,而NODE_ENV在.env文件中声明)。
"scripts": {
"start": "node app.js",
"dev": "nodemon server.js",
"prod": "NODE_ENV=production & nodemon app.js"
}
对于窗户
还要设置具有NODE_ENV = development的.env文件变量
如果您的.env文件位于eg.config文件夹的文件夹中,请确保在app.js中指定(您的主js文件)
const dotenv = require('dotenv'); dotenv.config({path:'./config/config.env'});
您还可以通过代码进行设置,例如:
process.env.NODE_ENV = 'test';
heroku config:set NODE_ENV="production"