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中的107个基础知识收集整理 推荐
Mar 29 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
jQuery scroll事件实现监控滚动条分页示例
Apr 04 Javascript
js实现遍历含有input的table实例
Dec 07 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
jquery validation验证表单插件
Jan 07 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
详解使用VueJS开发项目中的兼容问题
Aug 02 Javascript
vuex actions异步修改状态的实例详解
Nov 06 Javascript
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 get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
php 实现进制相互转换
2016/04/07 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
laravel自定义分页效果
2017/07/23 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
Node对CommonJS的模块规范
2019/11/06 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python判断输入日期为第几天的实例
2018/11/13 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
竞选班长演讲稿
2013/12/30 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
节约用水标语
2014/06/11 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
甘南现象心得体会
2014/09/11 职场文书
七一建党节演讲稿
2014/09/11 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫