vue根据不同环境进行编译打包
工作中我们在开发过程中,有很多的开发环境,如果我们不进行统一配置,那么我们只能手动进行更改,这样会给我们带来诸多不便,所以我们要配置根据不同的环境来进行编译打包.
先看一下我的项目目录:
在config文件内新建test.env.js文件:
1.
- 'use strict'
- module.exports = {
- NODE_ENV: '"testing"',
- ENV_CONFIG:'"test"'
- }
修改config内的prod.env.js文件:
2.
- 'use strict'
- module.exports = {
- NODE_ENV: '"production"',
- ENV_CONFIG:'"prod"'
- }
对build中webpack.prod.conf.js做如下修改:
3.
- const env = config.build[process.env.env_config+'Env']
config中的index.js 文件中build部分代码修改如下:
4.
- build: {
- prodEnv: require('./prod.env'),
- testEnv: require('./test.env'),
- // Template for index.html
- index: path.resolve(__dirname, '../dist/index.html'),
- // ····余下的代码就不写了
- }
确认安装cross-env
5.
- npm install cross-env –save-dev
对build文件夹下的build.js的修改:
6.
- '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')
- // const spinner = ora('building for production...') //注释掉
- var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )
- spinner.start()
修改package.json文件(在script里面添加):
7.
- "scripts": {
- "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
- "start": "npm run dev",
- "unit": "jest --config test/unit/jest.conf.js --coverage",
- "e2e": "node test/e2e/runner.js",
- "test": "npm run unit && npm run e2e",
- "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
- "build": "node build/build.js",
- "build--test": "cross-env NODE_ENV=testing env_config=test node build/build.js",
- "build--prod": "cross-env NODE_ENV=production env_config=prod node build/build.js"
- },
在utils文件下新建env.js,对环境进行判断并切换,内容如下:
8.
- /*
- * 配置编译环境和线上环境之间的切换
- * baseUrl: 域名地址
- * routerMode: 路由模式
- */
- let baseUrl = '';
- let routerMode = 'history';
- let DEBUG = false;
- let cancleHTTP = [];//取消请求头设置;
- //注:下面的baseUrl地址为假地址,只是模拟的,无法调通。
- if (process.env.NODE_ENV == 'development') {
- baseUrl = "https://10.248.65.100/GetTravelMethod";
- DEBUG = true;
- }else if(process.env.NODE_ENV == 'production'){
- baseUrl = "https://10.248.65.200/GetTravelMethod";
- DEBUG = false;
- }else if(process.env.NODE_ENV == 'testing'){
- baseUrl = "https://10.248.65.150/GetTravelMethod";
- DEBUG = false;
- }
- export{
- baseUrl,
- routerMode,
- DEBUG,
- ROLE,
- cancleHTTP
- }
在拦截器中配置
test环境下则运行:
9.
- npm run build--test
production环境则运行:
10.
- npm run build--prod
好了,这就是配置步骤了。
vue根据不同环境进行编译打包的更多相关文章
- vue给不同环境配置不同打包命令
第1步:安装cross-env 1 npm i --save-dev cross-env 第2步:修改各环境下的参数 在config/目录下添加test.env.js.pre.env.js. 修改pr ...
- vue 应用生产环境的 webpack 打包配置优化
转:https://blog.csdn.net/robin_star_/article/details/83856363 前言:很好的打包优化的帖子,还没来的急去实测验证 1. 去掉 console ...
- 二、Electron + Webpack + Vue 搭建开发环境及打包安装
目录 Webpack + Vue 搭建开发环境及打包安装 ------- 打包渲染进程 Electron + Webpack 搭建开发环境及打包安装 ------- 打包主进程 Electron + ...
- 一、Electron + Webpack + Vue 搭建开发环境及打包安装
目录 Webpack + Vue 搭建开发环境及打包安装 ------- 打包渲染进程 Electron + Webpack 搭建开发环境及打包安装 ------- 打包主进程 Electron + ...
- VUE环境搭建及打包上线
1.vue2.0新手填坑攻略之使用vue-cli搭建vue项目开发环境到项目发布 https://blog.csdn.net/u010020858/article/details/72865101 2 ...
- Android应用程序(APK)的编译打包过程
(9878) (7) 现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的 ...
- Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- 通过ant脚本编译打包android工程
通过ant脚本,编译打包android工程 1.Android程序编译.打包.签名.发布的三种方式: 方式一:命令行手动编译打包 方式二:使用ant自动编译打包 方式三:使用eclipse+AD ...
随机推荐
- 关于参加AWD攻防比赛心得体会
今天只是简单写下心得和体会 平时工作很忙 留给学习的时间更加珍少宝贵. 重点说下第二天的攻防比赛吧 . 三波web题 .涉及jsp,php,py. 前期我们打的很猛.第一波jsp的题看到有首页预留后 ...
- Linux重要配置文件
目录 简介 0x01 系统重要文件 0x02 用户重要文件 0x03 重要日志文件 本教程概述 本课时学习Linux系统中重要的配置文件. 用到的工具 SshClient Ubuntu 标签 Linu ...
- PMP(第六版)中的控制账户、规划包、工作包
PMP(第六版)中的控制账户.规划包.工作包 控制账户是一个管理控制点,在该控制点上,把范围.预算和进度加以整合,并与挣值比较,以测量绩效.控制账户拥有2个或以上的工作包,但每个工作包只与一个控制账户 ...
- 百万年薪python之路 -- 函数的动态参数练习
1.继续整理函数相关知识点. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*args,**kwargs): num_sum = 0 num_dic = [] num ...
- 【Go】高效截取字符串的一些思考
原文链接:https://blog.thinkeridea.com/201910/go/efficient_string_truncation.html 最近我在 Go Forum 中发现了 [SOL ...
- 实战--dango自带的分页(极简)
注意,我将templates定义在项目的同级目录下: 在settings.py中配置 TEMPLATES = [ { 'BACKEND': 'django.template.backends.djan ...
- iOS 应用签名原理&重签名
在苹果的日常开发中,真机测试与打包等很多流程都会牵扯到各种证书,CertificateSigningRequest,p12等.但是很多相应的开发者并不理解iOS App应用签名的原理和流程.今天着重讲 ...
- Java面向对象的三大特征和五大原则
Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...
- 暑期集训20190725 胜地不常(paradise)
[题目描述] 给定两个长度为n的非负整数数组a,b, [输入数据] 第一行一个整数n. 第二行n个整数a1~an. 第三行n个整数b1~bn. [输出数据] 一行一个整数表示答案. [样例输入] 4 ...
- AutoCad 二次开发 .net 之相同块的自动编号
主要步骤: 一.获取一个块的id: 其中oId就是了. 二.通过次oId获取块引用blkRef: 三.通过它获取所有相同的块引用的id集合: 四.通过步骤三的集合得到所有的块引用得到集合listBr: ...