在如今前后端分离,各种框架盛行的前端界,对项目的打包要求也越来越复杂,本人分享一个vue项目里,根据命令行输入不同的命令,打包出不同环境域名的方法。(欢迎纠错,谢谢。)

1. 安装插件 cross-env,npm install cross-env --save -dev,用于配置命令行输入命令。

2. 修改package.json里的script命令:

  配置了test(测试),ready(预发布),prod(正式)三种环境,npm run build 默认设置成 npm run build:prod,也可以根据自己需求,配置更多的命令,参数自定。网上看到有人去修改NODE_ENV这个默认的参数,配置文件里有很多地方都引用了这个参数。本人认为这个默认参数可以不改,自己重新增加一个参数就行(这里增加一个BUILD_ENV参数)。

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

3. 修改config目录下的prod.env.js

里面的默认配置是这样:只有一个NODE_ENV

'use strict'module.exports = {NODE_ENV: '"production"',
}

修改后的配置:

'use strict'
const BUILD_ENV = process.env.BUILD_ENV
let baseUrl
switch (BUILD_ENV) {case 'test':baseUrl = 'api.test.com'break;  case 'ready':baseUrl = 'api.ready.com'break;case 'prod':baseUrl = 'api.prod.com'break;
}
module.exports = {NODE_ENV: '"production"', BUILD_ENV: '"' + BUILD_ENV + '"',baseUrl: '"' + baseUrl + '"',
}

  修改的配置增加了BUILD_ENV和baseUrl两个属性,属性值记得拼接双引号,process.env.BUILD_ENV就是命令行里输入的BUILD_ENV的值,再根据BUILD_ENV进行相应的判断。在项目里,就可以通过process.env拿到prod.env.js暴露出去的3个属性。比如接口文件,就需要process.env.baseUrl来动态修改不同环境域名。

  

转载于:https://www.cnblogs.com/c-ms/p/11073675.html

vue项目中运用webpack动态配置打包多种环境域名相关推荐

  1. Vue项目开发需要准备和配置些什么环境?

    Vue项目开发需要准备和配置些什么环境? 一.首先需要安装node.js 下载:安装node.js链接 安装在D盘 window+R,输入cmd,打开命令提示符窗口,输入: npm -v 检测是否安装 ...

  2. Vue项目中如何设置动态的TDK

    TDK是什么 TDK就是网站的标题(title).描述(description)和关键词(keyword) TDK在哪里 上面大佬对TDK的概念解释的很全面,但是在网页中的TDK在哪里呢,作为开发人员 ...

  3. vue项目中使用Echarts 动态更改图表数据 , Vue 折线图、柱状图等图表动态刷新 ,

    问题:在vue组件中,用echarts插件 动态获取.修改图表数据 解决:已解决! 第一步:打开cmd命令窗口 安装echarts依赖 安装:npm install echarts -S 第二步:在m ...

  4. vue项目中使用 webpack优化之HappyPack 实战

    由于运行在 Node.js 之上的 Webpack 是单线程模型的,所以Webpack 需要处理的事情需要一件一件的做,不能多件事一起做. 我们需要Webpack 能同一时间处理多个任务,发挥多核 C ...

  5. VUE项目中CSS设置动态宽度的方法

    网上找到三种方法: 一.使用cumputed 首先你务必看Vue的官方文档.涉及到的基础知识有: 绑定内联样式的使用 computed的使用 文档写的都是基础使用.那么在项目实战中如何使用,两步就能实 ...

  6. vue项目中eslint规则校验配置

    新建.eslintrc.js文件,复制下面代码,将文件放到项目根目录即可 module.exports = {root: true,parser: 'vue-eslint-parser', env: ...

  7. Vue项目中常见问题(23)动态展示Floor组件

    目录 gitee仓库地址:登录 - Gitee.comhttps://gitee.com/CMD-UROOT/sph-project/commits/master 1.查看数据对应的位置 2.为什么这 ...

  8. 【vue】在vue项目中按顺序动态24个英文字母选项:A B C D E F......

    效果展示: 点击增加选项和答案后,会按顺序新增24位的英文字母: <!-- html --> <el-button type="danger" size=&quo ...

  9. vue 项目中的打包配置

    当我在使用vue 项目的时候, 我们可能会打包一下线上环境发布, 一会又在本地启动, 因为线上的环境要放在站点根目录下的二级目录中, 而我们的测试环境只是在 ./ 的根目录下, 所以, 当我要打包的时 ...

最新文章

  1. JavaScript--正则
  2. 【好文推荐】查看mysql安装位置
  3. idea java添加属性快捷键_Intellij IDEA 常用 设置 及 快捷键 (持续更新)
  4. linuxliveu盘怎么用_U盘数据如何恢复?U盘打不开怎么办?
  5. ora-01658 :无法为表空间USERS 中的段创建INITIAL区
  6. ListView隐藏HeadView
  7. 为什么肯德基旁边总有一家麦当劳
  8. Visual Studio Code里关于ESLint的错误消息
  9. 月工资5000元,如何快速积累30万?
  10. Spring注解@Component、@Repository、@Service、@Controll
  11. 小区物业收费管理系统
  12. 整理计算机的硬盘,史上最全的电脑清理磁盘方法 让你电脑速度像过山车一样快...
  13. 计算机系统指定文件类型,Win7系统下设置显示已知文件类型的扩展名
  14. API文档与模拟数据接口
  15. 计算机组装拆卸 心得,学习组装电脑的心得体会怎么写?
  16. 提供几本WEB前端开发电子书(2012/10/31更新)
  17. matlab 7y30,屏幕及音响表现出众_华硕 灵焕3(M3 7Y30/8GB/256GB)_笔记本评测-中关村在线...
  18. 电脑键盘部分按键失灵_电脑键盘失灵怎么办 三步教你解决问题【图文】
  19. DB2001 深入了解DB2 reorg
  20. Lytro Illum光场图像分解的白图像

热门文章

  1. Leaflet中使用layerGroup图层组实现图层切换
  2. Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
  3. Electron中实现菜单、子菜单、以及自带操作事件
  4. Ionic创建页面以及页面之间跳转、页面添加返回按钮、新增底部页面
  5. Redis常用命令之操作SortedSet(有序集合)
  6. SSM项目中怎样引入并使用Bootstrap
  7. oracle表空间最大30G?如果一张表超过30G怎么办
  8. 海通证券签约神策数据 数据赋能构建数字化运营闭环
  9. MemCached缓存知识知多少?
  10. rrnDB数据库简介-16S基因多拷贝数的证据