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 类方法定义还是有点区别
Apr 15 Javascript
Prototype 学习 Prototype对象
Jul 12 Javascript
jquery 问答知识整理
Feb 11 Javascript
浅谈JavaScript数据类型
Mar 03 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
js中值引用和地址引用实例分析
Jun 21 Javascript
JavaScript生成一个不重复的ID的方法示例
Sep 16 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
企业内控岗位的职责
2014/02/07 职场文书
学校后勤岗位职责
2014/02/19 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
难忘的一课教学反思
2014/04/30 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
安全生产标语口号
2015/12/26 职场文书
SQL SERVER触发器详解
2022/02/24 SQL Server