当前位置: 首页 > news >正文

vue2项目中配置切换不同的环境

1.创建环境文件

.env.development      # 开发环境
.env.test             # 测试环境
.env.staging          # 预发布环境
.env.production       # 生产环境
文件内容示例 
# .env.development
ENV=development
VUE_APP_BASE_API=http://dev.api.com
VUE_APP_ENV_NAME=开发环境# .env.test
ENV=test
VUE_APP_BASE_API=http://test.api.com
VUE_APP_ENV_NAME=测试环境# .env.production
ENV=production
VUE_APP_BASE_API=https://prod.api.com
VUE_APP_ENV_NAME=生产环境

2.修改packge.json文件

        需要切换不同的环境就直接配置 cross-env NODE_ENV=就行

"scripts": {"dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress --config build/webpack.dev.conf.js","start": "npm run dev","dev:test": "cross-env NODE_ENV=test webpack-dev-server --inline --progress --config build/webpack.dev.conf.js","unit": "jest --config test/unit/jest.conf.js --coverage","e2e": "node test/e2e/runner.js","test": "npm run unit && npm run e2e","build": "node build/build.js"},

        这个地方如果没有安装cross-env需要安装一下 ,cross-env 是一个 Node.js 包,专门用于解决不同操作系统间环境变量设置方式不一致的问题。它允许开发者在 Windows、Linux 和 macOS 上使用相同的命令来设置环境变量,极大地简化了跨平台开发的配置工作

npm i cross-env

3.创建环境加载工具

        在 build 目录下创建 env-loader.js:

const fs = require("fs");
const path = require("path");module.exports = function() {const env = process.env.NODE_ENV || "development";// 构建环境文件路径const envPath = path.resolve(__dirname, `../.env.${env}`); //解析环境文件的绝对路径// 默认环境变量配置const defaultEnv = {NODE_ENV: JSON.stringify(env),VUE_APP_ENV_NAME: JSON.stringify("未知环境")};// 检查环境文件是否存在if (!fs.existsSync(envPath)) {console.warn(`⚠️ 环境文件未找到: ${envPath}`);return defaultEnv;}// 读取环境文件内容const content = fs.readFileSync(envPath, "utf-8");const envConfig = {};content.split("\n").forEach(line => {// 按等号分割键值对,并去除空格const [key, value] = line.split("=");if (key && value) {envConfig[key] = JSON.stringify(value.trim());}});return {...defaultEnv,...envConfig};
};

 4.修改webpack配置

        修改 build/webpack.dev.conf.js:

const env = require('./env-loader')()  // 加载环境配置module.exports = {plugins: [new webpack.DefinePlugin({'process.env': env}),// 其他插件...]
}

        修改 build/webpack.prod.conf.js:

const env = require('./env-loader')()module.exports = {plugins: [new webpack.DefinePlugin({'process.env': env}),// 其他插件...]
}

这些配置好, 应该可以在项目中打印看看了

console.log("当前环境:", process.env.NODE_ENV);

相关文章:

  • 网站建设网页模板下载推广app赚佣金平台
  • 网站建设培训哪个好百度图片
  • 招聘网站开发人员哪里有网页设计公司
  • 淘宝做轮播广告哪个网站好南平网站seo
  • 合肥 网站建设公司哪家好win7优化大师官网
  • 荆州做网站公司线上运营的5个步骤
  • 数字化项目调研过程中需要的文章
  • 《美化生活》投稿简介
  • 【微软认证系列】MB-910考试经验分享及详细介绍
  • 链表的排序算法
  • 医学数据分析实战:冠心病发病因素可视化
  • RGB相机 vs 灰度相机
  • Ubuntu离线安装特定版本的gcc
  • 暴雨来袭,气象卫星能在极端天气预报中起什么作用?
  • 蓝桥杯嵌入式学习(cubemxkeil5)
  • 记一次 Kafka 磁盘被写满的排查经历
  • HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
  • 图的拓扑排序管理 Go 服务启动时的组件初始化顺序
  • Flink内存配置
  • GPU常见规格及算力
  • Langchain实战指南:从入门到精通AI链式编程!
  • 使用 ttrpc 实现高效的进程间通信(附 Go Demo)
  • 从零到一训练一个 0.6B 的 MoE 大语言模型
  • 6月24日星期二今日早报简报微语报早读微语早读
  • 代码随想录|图论|02深度优先搜索理论基础
  • JVM(11)——详解CMS垃圾回收器