加载.env 文件扩展process.env

碰见个用Quasar CLI创建的项目,想使用.env文件配置环境变量区分在不同模式中获取的参数,但是他内部并没有读取.env文件的操作也没有对process.env进行扩展,所以另辟蹊径在quasar.config.js对.env文件进行了读取并对环境变量进行扩展。

加载.env 文件扩展process.env_第1张图片加载.env 文件扩展process.env_第2张图片

const path = require("path");
const parseArgs = require("minimist");
const dotenv = require("dotenv");
const { expand } = require("dotenv-expand");
const argv = parseArgs(process.argv.slice(2));
const basePath = path.resolve(__dirname, `.env${argv.ENV_MODE ? `.${argv.ENV_MODE}` : ``}`);
const localPath = `${basePath}.local`;

const loadEnv = envPath => {
  try {
    const env = dotenv.config({ path: envPath });
    expand(env);
  } catch (err) {
    console.log(err)
  }
}

loadEnv(localPath);
loadEnv(basePath);

process 对象提供有关当前 Node.js 进程的信息并对其进行控制。
process.argv 包含启动 Node.js 进程时传入的命令行参数,第一个参数是 node 命令的完整路径,第二个参数是正被执行的文件的完整路径,所有其他的参数从第三个位置开始。
在这里插入图片描述
minimist 库可以解析参数选项,但是需要在每个参数名称之前使用双破折号。
dotenvdotenv-expand库用来扩展process.env,将环境变量从 .env 文件加载到 process.env 中。

欢迎大家留言讨论!!!

你可能感兴趣的:(javascript,前端,node.js,前端框架)