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 屏蔽一个区域内的所有元素,禁止输入
Oct 22 Javascript
js中top/parent/frame概述及案例应用
Feb 06 Javascript
jquery遍历select元素(实例讲解)
Dec 31 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
React diff算法的实现示例
Apr 20 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
Jun 12 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
Oct 09 Javascript
如何通过JS实现转码与解码
Feb 21 Javascript
js判断密码强度的方法
Mar 18 Javascript
JS实现数组去重的11种方法总结
Apr 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
PHP利用header跳转失效的解决方法
2014/10/24 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
JS中的多态实例详解
2017/10/15 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
python数据处理实战(必看篇)
2017/06/11 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
用python实现百度翻译的示例代码
2018/03/09 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Python流程控制 if else实现解析
2019/09/02 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
学生就业推荐信
2013/11/13 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
财务工作检讨书
2014/10/29 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
匿名信格式范文
2015/05/27 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript