vue项目打包之开发环境和部署环境的实现


Posted in Javascript onApril 23, 2020

项目开发阶段和生产环境可能不一样

如前端在开发阶段,接口可能是自己使用 node.js 搭建的服务器,API 返回的也都是假数据,等后台接口开发好后,再切换成后台提供的接口,等测试没有问题,服务端上线后,又要改成正式的接口

vue项目打包之开发环境和部署环境的实现

手动改动接口,既繁琐又容易出错(当然,区别还不止这些)

优雅的解决方案是,分别使用两个入口文件,一个用于开发环境打包,一个用于生产环境打包

具体来说,分为下面几个步骤

1、创建入口文件

在 src 目录下新建 prod_env.js 和 dev.env.js

将main.js 中代码分别拷贝到这两个文件中,并删除 main.js

2、配置打包时的入口文件

项目根目录下新建 vue.config.js

编写如下代码

module.exports={
  chainWebpack:config=>{
    config.when(process.env.NODE_ENV === 'production',config=>{
      config.entry('app').clear().add('./src/prod_env.js')
    })
    config.when(process.env.NODE_ENV === 'development',config=>{
      config.entry('app').clear().add('./src/dev_env.js')
    })
  }
}

说明

开发时,使用 npm run serve 命令,NODE_ENV 的值就是 developmnent ,所以会将 dev.env.js 作为入口文件

部署时,使用 npm run build 命令,NODE_ENV 的值就是 production,所以会将 prod_evn.js 作为入口文件

 3、测试

故意在两个入口文件中搞点错误,如注释1行下面需要用到的代码,然后运行打包命令,就可以看到错误信息

Javascript 相关文章推荐
枚举JavaScript对象的函数
Dec 22 Javascript
看了就知道什么是JSON
Dec 09 Javascript
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
JS Loading功能的简单实现
Nov 29 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
angular.js实现列表orderby排序的方法
Oct 02 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 #Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 #Javascript
如何修改Vue打包后文件的接口地址配置的方法
Apr 22 #Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 #Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 #Javascript
微信小程序实现手指拖动选项排序
Apr 22 #Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 #Javascript
You might like
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
thinkphp分页实现效果
2016/10/13 PHP
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
python实现连接mongodb的方法
2015/05/08 Python
Python中将字典转换为列表的方法
2016/09/21 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
wxpython绘制音频效果
2019/11/18 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
Linux的文件类型
2012/03/07 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
报到证丢失证明
2014/01/11 职场文书
求职教师自荐书
2014/06/19 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书