如何使用各种脚本命令(在 package.json 中)更改 dotenv 中的路径,例如:start、test 等
how to change the path in dotenv with various script commands (in package.json) such as : start , test , etc
好吧,我的问题是当我想在 package.json 中切换我的脚本命令时,例如从“开始”到“测试”,以便 运行 我的 Jest 测试其命令如下:
"scripts": {
"start": "nodemon express/***",
"serve": "node express/***",
"dev": "node express/***",
"test": "jest --watch"
},
我在我的项目中这样调用 dotenv
require("dotenv").config({
path: "express/config/.env",
});
上面的代码,帮助我使用我的环境文件,比如 .env
但问题是,当我想测试我的项目时,我想将我的脚本命令(在 package.json 中)从“开始”切换到“测试”,并将 dotenv 环境的主要路径更改为 test.env
您可以像这样将环境类型作为环境变量传递到您的程序中。注意:如果您需要多平台支持,则需要使用 cross-env。
Unix 版本:
"scripts": {
"start": "NODE_ENV=production nodemon express/***",
"serve": "NODE_ENV=production node express/***",
"dev": "NODE_ENV=dev node express/***",
"test": "NODE_ENV=test jest --watch"
}
cross-env
版本:
"scripts": {
"start": "cross-env NODE_ENV=production nodemon express/***",
"serve": "cross-env NODE_ENV=production node express/***",
"dev": "cross-env NODE_ENV=dev node express/***",
"test": "cross-env NODE_ENV=test jest --watch"
}
然后使用 process.env.NODE_ENV
的正常方法访问它们
const envVariablePaths = {
"production": "/path/here",
"dev": "path/here",
"test": "path/here",
}
require("dotenv").config({
path: envVariablePaths[process.env.NODE_ENV],
})
可以找到更多文档here
好吧,我的问题是当我想在 package.json 中切换我的脚本命令时,例如从“开始”到“测试”,以便 运行 我的 Jest 测试其命令如下:
"scripts": {
"start": "nodemon express/***",
"serve": "node express/***",
"dev": "node express/***",
"test": "jest --watch"
},
我在我的项目中这样调用 dotenv
require("dotenv").config({
path: "express/config/.env",
});
上面的代码,帮助我使用我的环境文件,比如 .env 但问题是,当我想测试我的项目时,我想将我的脚本命令(在 package.json 中)从“开始”切换到“测试”,并将 dotenv 环境的主要路径更改为 test.env
您可以像这样将环境类型作为环境变量传递到您的程序中。注意:如果您需要多平台支持,则需要使用 cross-env。
Unix 版本:
"scripts": {
"start": "NODE_ENV=production nodemon express/***",
"serve": "NODE_ENV=production node express/***",
"dev": "NODE_ENV=dev node express/***",
"test": "NODE_ENV=test jest --watch"
}
cross-env
版本:
"scripts": {
"start": "cross-env NODE_ENV=production nodemon express/***",
"serve": "cross-env NODE_ENV=production node express/***",
"dev": "cross-env NODE_ENV=dev node express/***",
"test": "cross-env NODE_ENV=test jest --watch"
}
然后使用 process.env.NODE_ENV
const envVariablePaths = {
"production": "/path/here",
"dev": "path/here",
"test": "path/here",
}
require("dotenv").config({
path: envVariablePaths[process.env.NODE_ENV],
})
可以找到更多文档here