浅析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 相关文章推荐
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
文档对象模型DOM通俗讲解
Nov 01 Javascript
js中小数转换整数的方法
Jan 26 Javascript
详解JS面向对象编程
Jan 24 Javascript
React + webpack 环境配置的方法步骤
Sep 07 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
Jul 13 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
js实现GIF图片的分解和合成
Oct 24 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 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
php准确计算复活节日期的方法
2015/04/18 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
深入理解node.js之path模块
2017/05/03 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
介绍Python中的文档测试模块
2015/04/28 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
什么是servlet链?
2014/07/13 面试题
大学生简历中个人的自我评价
2013/10/06 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js