webpack 3 + Vue2 使用dotenv配置多环境的步骤

 更新时间:2023年11月30日 11:54:31   作者:煮酒泛舟  
这篇文章主要介绍了webpack 3 + Vue2 使用dotenv配置多环境,env文件在配置文件都可以用, vue页面用的时候需要在 webpack.base.conf.js 重新配置,需要的朋友可以参考下

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

webpack 3 + Vue2 使用dotenv方式配置多环境

一、dotenv

它能将环境变量中的变量从 .env 文件加载到 process.env 中

二、使用步骤

1.引入库

yarn add dotenv --dev 

2.添加.env文件

这里会添加.env .env.dev .env.dev.local .env.production
一般情况.env.dev.local 是不会提交到git的
会按照这个顺序覆盖环境变量的值 .env.*.local > .env.* > .env

# port
VUE_PORT = 3200
# 应用接口上下文
VUE_APP_CONTEXT_NEW = /CONT
# API请求前缀 
VUE_APP_API_PREFIX = /apis
VUE_PUBILIC_PATH = site
# 当运行 vue-cli-service build 时生成的生产环境构建文件的目录。
VUE_OUTPUT_DIR = site
#  放置生成的静态资源 (js、css、img、fonts) 的目录(相对于outputDir目录)。
VUE_ASSETSDIR = static
# 指定生成的 
VUE_INDEX_PATH = index.html
VUE_PROXY = {"/apis": "http://192.168.1.10:8089"}

3.修改代理配置

修改config/indes.js,这个文件要根据自己的配置去找。

const dotenv = require("dotenv");
const fs = require("node:fs");
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
const pathsDotenv = resolveApp(".env");
dotenv.config({ path: `${pathsDotenv}.${process.env.NODE_ENV}.local` });
dotenv.config({ path: `${pathsDotenv}.${process.env.NODE_ENV}` });
dotenv.config({ path: pathsDotenv });
console.log("【process.env.VUE_PORT】", process.env.VUE_PORT);
console.log("【process.env.VUE_PROXY】", process.env.VUE_PROXY);
const createProxy = obj => {
  const ret = {};
  const httpsRE = /^https:\/\//;
  if (obj) {
    obj = JSON.parse(obj);
    for (const prefix in obj) {
      const target = obj[prefix];
      const isHttps = httpsRE.test(target);
      ret[prefix] = {
        target: target,
        changeOrigin: true,
        ws: true,
        pathRewrite: path => path.replace(new RegExp(`^${prefix}`), ""),
        ...(isHttps ? { secure: false } : {})
      };
    }
  }
  console.debug(ret);
  return ret;
};
....
// 这个地方可以使用函数方式,都一样,改proxyTable就可以了。
module.exports = {
  dev: {
  	....
 	proxyTable: createProxy(process.env.VUE_PROXY)
 	....
 }
}
....

4.vue文件中如何使用环境变量

修改 webpack.base.conf.js
需要哪些变量就配置

new webpack.DefinePlugin({
  "process.env": {
    NODE_ENV: JSON.stringify(process.env.NODE_ENV || "development"),
    VUE_APP_CONTEXT: JSON.stringify(
      process.env.VUE_APP_CONTEXT || "/CONTEXT"
    ),
    VUE_APP_API_PREFIX: JSON.stringify(
      process.env.VUE_APP_API_PREFIX || "/contextapi"
    )
  }
}),

总结

env文件在配置文件都可以用, vue页面用的时候需要在 webpack.base.conf.js 重新配置。

到此这篇关于webpack 3 + Vue2 使用dotenv配置多环境的文章就介绍到这了,更多相关webpack配置多环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue.js实现输入框清空功能的两种方式

    Vue.js实现输入框清空功能的两种方式

    Vue.js 是一个流行的前端框架,它提供了多种方法来实现数据的双向绑定和事件处理,在构建表单时,我们经常需要实现清空输入框的功能,本文将介绍两种在Vue中实现输入框清空功能的方法,感兴趣的小伙伴跟着小编一起来看看吧
    2024-12-12
  • vue3 Table分页保留选中状态代码示例

    vue3 Table分页保留选中状态代码示例

    这篇文章主要给大家介绍了关于vue3 Table分页保留选中状态的相关资料,vue table组件是一个非常方便的表格组件,它可以帮助我们实现分页和选中功能,需要的朋友可以参考下
    2023-08-08
  • Vue router配置与使用分析讲解

    Vue router配置与使用分析讲解

    第一次写Vue项目,要用到router.js,看了一下官方文档,还是很懵逼,不知道怎么配置,又去看视频查资料,最后终于搞定了。话不多说,先上代码,我再讲一些要注意的细节
    2022-12-12
  • 如何使用Vue做个简单的比较两个数字大小页面

    如何使用Vue做个简单的比较两个数字大小页面

    这篇文章主要给大家介绍了关于如何使用Vue做个简单的比较两个数字大小页面的相关资料,实现一个比较两个数字大小的页面,练习Vue实例的创建、数据绑定和事件监听方法,需要的朋友可以参考下
    2023-10-10
  • Vite配置路径别名的简单实现方法

    Vite配置路径别名的简单实现方法

    Vite项目中我们可以手动将src路径设置**@**路径别名,可以省下很多引入路径的冗余路径,下面这篇文章主要给大家介绍了关于Vite配置路径别名的简单实现方法,需要的朋友可以参考下
    2023-04-04
  • vue实现搜索小功能

    vue实现搜索小功能

    这篇文章主要为大家详细介绍了vue实现搜索小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 解决vue项目,npm run build后,报路径错的问题

    解决vue项目,npm run build后,报路径错的问题

    这篇文章主要介绍了解决vue项目,npm run build后,报路径错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue Validate表单组件的封装详解

    Vue Validate表单组件的封装详解

    这篇文章主要为大家详细介绍了Vue Validate表单组件的封装的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下
    2023-09-09
  • Vue核心概念Getter的使用方法

    Vue核心概念Getter的使用方法

    今天小编就为大家分享一篇关于Vue核心概念Getter的使用方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Vue中keep-alive 实现后退不刷新并保持滚动位置

    Vue中keep-alive 实现后退不刷新并保持滚动位置

    这篇文章主要介绍了Vue中keep-alive 实现后退不刷新并保持滚动位置的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03

最新评论