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 相关文章推荐
自制基于jQuery的智能提示插件一枚
Feb 18 Javascript
js内置对象 学习笔记
Aug 01 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
jquery 手势密码插件
Mar 17 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
JavaScript数组push方法使用注意事项
Oct 30 Javascript
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
解决layui表格的表头不滚动的问题
Sep 04 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
DedeCms模板安装/制作概述
2007/03/11 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python实现一个优先级队列的方法
2020/07/31 Python
python3访问字典里的值实例方法
2020/11/18 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
项目经理岗位职责
2013/11/11 职场文书
银行实习鉴定
2013/12/13 职场文书
2014年自我评价
2014/01/04 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
跑出一片天观后感
2015/06/08 职场文书
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL