浅析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和s3captche实现一个水果名字的验证
Aug 14 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
js实现带农历和八字等信息的日历特效
May 16 Javascript
jQuery中常用动画效果函数(日常整理)
Sep 17 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
Sep 19 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
JavaScript基本语法_动力节点Java学院整理
Jun 26 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
JavaScript数组及常见操作方法小结
Nov 13 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
typecho插件编写教程(一):Hello World
2015/05/28 PHP
php fread读取文件注意事项
2016/09/24 PHP
js不是基础的基础
2006/12/24 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python 中的int()函数怎么用
2017/10/17 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python 接收处理外带的参数方法
2018/12/03 Python
Python File(文件) 方法整理
2019/02/18 Python
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
自荐信模版
2013/10/24 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
班级学习计划书
2014/04/27 职场文书
团代会开幕词
2015/01/28 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
教学质量月活动总结
2015/05/11 职场文书