bas*_*eps 151 javascript node.js
我正在尝试关注NodeJs的教程.我不认为我错过任何东西,但每当我打电话给process.env.NODE_ENV我回来的唯一价值是不确定的.根据我的研究,默认值应该是"开发".如何动态设置此值以及最初设置的位置?
Jam*_*sky 180
process.env是对您的环境的引用,因此您必须在那里设置变量.
SET NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)
在OS X或Linux上:
export NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)
mla*_*tti 48
对于使用*nix(Linux,OS X等)的人来说,没有理由通过第二个导出命令来执行此操作,您可以将其作为调用命令的一部分进行链接:
NODE_ENV=development node server.js
Run Code Online (Sandbox Code Playgroud)
更容易,不是吗?:)
ken*_*ley 48
提示
在package.json:
"scripts": {
"start": "set NODE_ENV=dev && node app.js"
}
Run Code Online (Sandbox Code Playgroud)
在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)
Run Code Online (Sandbox Code Playgroud)
所以,这可能更好:
"start": "set NODE_ENV=dev&& node app.js"
Run Code Online (Sandbox Code Playgroud)
要么
console.log(process.env.NODE_ENV.trim() === 'dev') // true
Run Code Online (Sandbox Code Playgroud)
小智 30
我们在Windows上使用节点时遇到了这个问题.
我们提供了应用程序中的后备,而不是要求任何试图运行应用程序的人设置这些变量.
var environment = process.env.NODE_ENV || 'development';
Run Code Online (Sandbox Code Playgroud)
在生产环境中,我们将按照常规方法(SET/export)定义它.
小智 10
必须是 app.js 中的第一个 require
npm install dotenv
require("dotenv").config();
Run Code Online (Sandbox Code Playgroud)
在macOS中,对于那些使用Express版本4.x.x和DOTENV插件的用户,需要这样使用:
安装插件导入后,在您启动应用程序的文件中,如下所示:
require('dotenv').config({path: path.resolve(__dirname+'/.env')});
在根目录中,创建一个文件“ .env”并添加以下变量:
NODE_ENV=development
要么
NODE_ENV = development
在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",
}
Run Code Online (Sandbox Code Playgroud)
对于开发环境,我们必须点击“ npm run dev”命令
对于生产环境,我们必须点击“ npm run start”命令
小智 6
安装 dotenv 模块 ( npm i dotenv --save )
require('dotenv').config() //写入将使用变量的文件内
console.log(process.env.NODE_ENV) // 返回.env 文件中存储的值
您可以使用cross-env npm软件包。它将负责修剪环境变量,并且还将确保它可在不同平台上工作。
在项目根目录中,运行:
npm install cross-env
Run Code Online (Sandbox Code Playgroud)
然后在您的package.json中的脚本下,添加:
"start": "cross-env NODE_ENV=dev node your-app-name.js"
Run Code Online (Sandbox Code Playgroud)
然后在终端的项目根目录中,通过运行以下命令启动应用程序:
npm start
Run Code Online (Sandbox Code Playgroud)
然后,该环境变量将在您的应用中以形式提供process.env.NODE_ENV,因此您可以执行以下操作:
if (process.env.NODE_ENV === 'dev') {
// Your dev-only logic goes here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196274 次 |
| 最近记录: |