vue2设置运行环境和打包环境变量

环境

javascript 复制代码
 env ------ 所有模式共用
.env.local ------ 所有模式共用,但不会被 git 提交,自动添加到.gitignore
.env.development ------ 仅开发模式使用,使用npm run server时默认会加载此配置文件
.env.developmen.local------ 仅开发模式使用,但会被 git 忽略自动添加到.gitignore,使用npm run server时默认会加载此配置文件
.env.production ------ 仅生产模式使用,使用npm run build时默认会加载此配置文件
.env.staging------ 仅staging模式使用,使用需要配置--mode staging

.env.dev
.env.test
.env.prod

编写配置内容

javascript 复制代码
# 运行环境
NODE_ENV="development"
  
# 设置Axios 基础路径
VUE_APP_BASE_URL = "/api/"

# 设置App运行路径
VUE_APP_MAPP_URL ="https://t.m.xxxx.com" 

# 是否使用Hash路由
VUE_APP_MAPP_URL = 'true'
想要运行环境来设置的话 就可以在这里设置 但是有1点需要注意  这里的前缀必须是VUE_APP_开头
其他的识别不到

在package.json文件中编写启动命令

这里的 env 文件是会默认加载 其他的都需要手动在这里添加启动命令

javascript 复制代码
"scripts": {
    "dev": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --mode dev",
    "test": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --mode test",
    "prod": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --mode prod",
    "build:dev": "vue-cli-service build --mode dev",
    "build:test": "vue-cli-service build --mode test",
    "build:prod": "vue-cli-service build --mode prod",
  }

使用环境变量

复制代码
启动后 可以随意页面调用配置运行环境里面的  process.env.xxx   

示例 vue2

vue2 使用的是webpack 和vue3使用vite写法不一样哦!!!

javascript 复制代码
const { defineConfig } = require("@vue/cli-service");
const { getProxyConfig } = require('./src/config/proxy');

module.exports = defineConfig({
  publicPath: "/",
  transpileDependencies: true,
  outputDir: "./dist",//打包路径
  devServer: {
    port: 10001,
    proxy: getProxyConfig(process.env.NODE_ENV)//这里传入env运行环境去动态设置proxy
  }
});
javascript 复制代码
function getProxyConfig (env) {
  const urlConfig = {
    '/api': {
      'development': 'http://xxx:10000/api/',
      'test': 'https://xxx/api',
      'production': 'https://xxx/api',
    },
    '/pay': {
      'development': 'http://xxx:10000/pay',
      'test': 'http:/xxx/pay',
      'production': 'https://xxx.com',
    }
  }

  const target = (targetTag, baseUrl) => ({
    target: targetTag,
    changeOrigin: true,
    pathRewrite: {
      [`^${baseUrl}`]: '/',
    },
  });

  return Object.entries(urlConfig).reduce((result, [key, value]) => {
    result[key] = target(value[env], key);
    return result;
  }, {}); 
}

module.exports = { getProxyConfig };
相关推荐
回村中年1 分钟前
浏览器 路由详解
前端
Mcband4 分钟前
主流程发起,去除子流程的时长计算问题
java·前端·算法
晓得迷路了4 分钟前
栗子前端技术周刊第 75 期 - Rspack 1.3、React 19.1、Astro 5.6...
前端·javascript·react.js
Kagol5 分钟前
TinyPro 后台管理系统从启动 ➡️ 使用 ➡️ 二开,看这一篇就够了!点赞、收藏⭐,不迷路!
前端·vue.js·nestjs
QTX187306 分钟前
常见的 JavaScript 框架和库
开发语言·javascript·ecmascript
xiezhr16 分钟前
程序员为什么总是加班?
前端·后端·程序员
好_快20 分钟前
Lodash源码阅读-baseIsMatch
前端·javascript·源码阅读
excel20 分钟前
webpack 格式化模块工厂 第 一 节
前端
九筠23 分钟前
python网络爬虫开发实战之Ajax数据提取
前端·爬虫·ajax·网络爬虫
excel35 分钟前
webpack 核心编译器 十七 节
前端