dotenv配置多环境支持vue、nuxtjs和webpack项目打包闭坑指南

文件名默认.env
当我我们可以取名叫
.env.test
.env.dev
.env.prod
注意文件里面的不要存在引号
DB_HOST=localhost
DB_USER=root

ps1:那么在nuxtjs中怎么让我们的变量支持服务器和客户端呢?
可以在nuxt.config.js再次定义env的变量把值给过去
env: {
COOKIE_DOMAIN: process.env.COOKIE_DOMAIN,
}
ps2:nuxtjs中模块试用方法
// [’@nuxtjs/dotenv’, { filename: .env.${process.env.NODE_ENV} }],
这里可以是path可以是file 可以是是filename
ps3:如果在配置文件需要使用.env的变量
require(‘dotenv’).config这个官方也有说明。不过要注意闭坑
这里的path、debug参数可以自己输入,path需要全路径,不然默认获取.env的文件的变量,并且内容无法覆盖

[dotenv][DEBUG] “COOKIE_DOMAIN” is already defined in process.env and
will not be overwritten [dotenv][DEBUG] “LOGINMODE” is already defined
in process.env and will not be overwritten

所以解决办法:
import path from ‘path’; // 这步一定要,否则会报错
//获取系统的真实目录地址,可以有很多方法
const rootPath = path.resolve(process.cwd(), .env.${process.env.NODE_ENV});
然后根据我们的当前的环境切换不同的配置来获取
require(‘dotenv’).config({ path: rootPath })

插件地址:https://www.npmjs.com/package/dotenv
项目源码地址:https://gitee.com/shuogesha/boot-mongo-admin

猜你喜欢

转载自blog.csdn.net/zhaohaiyuan123/article/details/120562040
今日推荐