浅析vue给不同环境配置不同打包命令


Posted in Javascript onAugust 17, 2018

第1步:安装cross-env

npm i --save-dev cross-env

第2步:修改各环境下的参数

在config/目录下添加test.env.js、pre.env.js。

修改prod.env.js里的内容,修改后的内容如下:

'use strict'
module.exports = {
 NODE_ENV: '"production"',
 EVN_CONFIG:'"prod"',
 API_ROOT:'"/apis/v1"'
}

分别对test.env.js和pre.env.js文件内容进修修改,修改后的内容如下:

'use strict'
module.exports = {
 NODE_ENV: '"testing"',
 EVN_CONFIG:'"test"',
 API_ROOT:'"/test/apis/train"'
}
'use strict'
module.exports = {
 NODE_ENV: '"presentation"',
 EVN_CONFIG:'"pre"',
 API_ROOT:'"/pre/apis/train"'
}

对dev.env.js文件内容进行修改,修改后的内容如下。dev环境配制了服务代理,API_ROOT前的api是配制的代理地址。

module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 VN_CONFIG: '"dev"',
 API_ROOT: '"api/apis/v1"'
})

第3步:修改项目package.json文件

对package.json文件中的scripts内容进行个性,添加上新定义的几种环境的打包过程,里的参数与前面的调协保持一致。

"scripts": {
 "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
 "start": "npm run dev",
 "build": "node build/build.js",
 "build:test": "cross-env NODE_ENV=production env_config=test node build/build.js",
 "build:pre": "cross-env NODE_ENV=production env_config=pre node build/build.js",
 "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js"
 },

在这里,NODE_ENV最好都设成production,因为在utils.js只做了production一种判定,亲测不会影响各环境API参数。

第4步:修改config/index.js

修改config/index.js文件中build参数,这里的参数会在build/webpackage.prod.conf.js中使用到

build:{
 // Template for index.html
 // 添加test pre prod 三处环境的配制
 prodEnv: require('./prod.env'),
 preEnv: require('./pre.env'),
 testEnv: require('./test.env'),
 //下面为原本的内容,不需要做任何个性
 index:path.resolve(__dirname,'../dist/index.html'),

第5步:在webpackage.prod.conf.js中使用构建环境参数  

对build/webpackage.prod.conf.js文件进行修改,调整env常量的生成方式。

// 个性env常量的定义
// const env = require('../config/prod.env')
const env = config.build[process.env.env_config+'Env']

第6步:调整build/build.js

删除process.env.NODE_ENV的赋值,修改spinner的定义,调整后的内容如下:

'use strict'
require('./check-versions')()
// 注释掉的代码
// process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
// 修改spinner的定义
// const spinner = ora('building for production...')
var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )
spinner.start()
//更多的其它内容,不需要做任何调整的内容 ...

最后:

执行npm run build:test打包的就是测试环境

执行npm run build:prod打包的就是生产环境

总结

以上所述是小编给大家介绍的vue给不同环境配置不同打包命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 联动日历实现代码
May 31 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
js作用域及作用域链工作引擎
Jul 07 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 #Javascript
JavaScript实现构造json数组的方法分析
Aug 17 #Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 #Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 #Javascript
layer弹出层全屏及关闭方法
Aug 17 #Javascript
vue+iview+less 实现换肤功能
Aug 17 #Javascript
jquery实现的简单轮播图功能【适合新手】
Aug 17 #jQuery
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
基于php判断客户端类型
2016/10/14 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
javascript jQuery插件练习
2008/12/24 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
Python中使用SAX解析xml实例
2014/11/21 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
公司合作意向书范文
2014/07/30 职场文书
支部书记四风对照材料
2014/08/28 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python