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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
Oct 24 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
js中的preventDefault与stopPropagation详解
Jan 29 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
C++中的string类的用法小结
Aug 07 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
Sep 03 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
vue data恢复初始化数据的实现方法
Oct 31 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
Protoss魔法科技
2020/03/14 星际争霸
php Try Catch异常测试
2009/03/01 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
Vue+webpack项目基础配置教程
2018/02/12 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
Python使用minidom读写xml的方法
2015/06/03 Python
python爬虫使用cookie登录详解
2017/12/27 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
Python数学形态学实例分析
2019/09/06 Python
python相对企业语言优势在哪
2020/06/12 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
医学生个人求职信范文
2013/09/24 职场文书
市场营销专科应届生求职信
2013/11/24 职场文书
《凡卡》教学反思
2014/04/09 职场文书
中学生评语大全
2014/04/18 职场文书
手术室护士个人总结
2015/02/13 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
导游词之昭君岛
2020/01/17 职场文书