一、安装

npm install --save-dev cross-env

二、配置步骤

1、修改config下的文件

//test.env.js

'use strict'
module.exports = {
NODE_ENV: '"testing"',
ENV_CONFIG: '"test"',
BASE_API:'"http://10.20.2.177:12120/api"'
}

//prod.env.js

'use strict'
module.exports = {
NODE_ENV: '"production"',
ENV_CONFIG: '"prod"',
BASE_API:'"http://10.20.2.177:12121/api"'
}

//dev.env.js

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env') module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
ENV_CONFIG: '"dev"',
BASE_API:'"http://10.20.2.177:12120/api"'
})

//config/index.js文件修改, build中添加prodEnv, testEnv, devEnv

...
build: {
prodEnv: require('./prod.env'),
testEnv: require('./test.env'),
devEnv: require('./dev.env'),
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
...

2、修改build/build.js文件,打包的时候可以显示环境

const spinner = ora('正在打包... ' + process.env.ENV_CONFIG + '环境')

3、配置package.json文件,配置打包命令

 "build--dev": "cross-env NODE_ENV=dev ENV_CONFIG=dev 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"

4、运行命令就可以实现分环境打包了

npm run build--dev
npm run build--test
npm run build--prod

最后,项目中使用axio根据不同环境配置不同的请求接口地址,就可以实现打包不同环境,调用不同环境地址接口。

可打印process.env.NODE_ENV查看。

配置完成之后发现一个问题,就是以往的项目运行npm run dev会自动打开默认的浏览器,但这一次自己配置并没有。

解决方法:修改config/index.js

autoOpenBrowser: true,  //是否默认打开浏览器,默认是false,改为true即可

vue cli2.x配置多环境打包的更多相关文章

  1. angular8 配置 测试环境打包指令 生成测试环境包指令

    1.angular.json 文件中在architect 下添加 buildTest指令 距离位置 projects => (你的项目名称) => architect 下和 build 指 ...

  2. Vue+webpack项目的多环境打包配置

    背景:由于需要将应用部署到线上开发环境.线上测试环境.线上预发环境.线上生产环境,而每个环境的访问地址是不同的.如果每次更改请求地址未免有些繁琐,就考虑在本地进行一次性配置. 代码管理工具:git 代 ...

  3. 基于Vue + webpack + Vue-cli 实现分环境打包项目

    需求由来:我公司项目上线发布至服务器分为三个环境分别为测试环境.预发布环境.生产环境:前期做法是项目通过脚步打包时由脚步把域名和后缀名之类的全部替换成要发布的环境所需要的,因为我公司的项目比较大由许许 ...

  4. vue 动态ip配置,避免重复打包

    目前比较流行的打包大都是在vue.config.js配置代理,然后在根目录新建.env.xxx文件配置正式环境,测试环境,开发环境等用于打包时配置不同的访问地址,作为一名随波逐流的前端开发,我也是这么 ...

  5. Vue项目根据不同运行环境打包项目

    前提 项目是直接通过 vue-cli脚手架 生成的: 假设在项目开发中,分为三个环境 -- · 测试环境· 预生产环境· 生产环境 每个环境的接口地址都是不同的,而 vue-cli 给出的环境只有 d ...

  6. vue config.js配置生产环境和发布环境不同的接口地址问题

    第一步,分别设置不同的接口地址 首先,我们分别找到下面的文件: /config/dev.env.js /config/prod.env.js 其实,这两个文件就是针对生产环境和发布环境设置不同参数的文 ...

  7. spring-boot分环境打包为tar包

    1.pom配置 <!-- 多环境打包 start --> <profiles> <!-- 开发环境配置 --> <profile> <id> ...

  8. spring-boot分环境打包为war包

    1.启动类修改 @EnableSwagger2 @SpringBootApplication public class CustWebAcApplication extends SpringBootS ...

  9. spring-boot分环境打包为jar包

    1.pom配置 <!-- 多环境打包 start --> <profiles> <!-- 开发环境配置 --> <profile> <id> ...

随机推荐

  1. 推荐20个让你学习并精通CSS的网站

    1. A List Apart CSS Topics A List Apart,学习网页设计和最佳实践的首选网站.这个网站从1999年就开始发表关于CSS的文章,其中大部分文章都是面向那些更注重符合标 ...

  2. 继续搞我的linux

    小程序研发已经告一段落,还是继续我的Linux研究.上次因为捣鼓那个fastab,结果吧虚拟机搞崩溃了.好吧,这次老子来装正式机,从机房拉来了一台破烂货,联想的老式服务器,开工吧. 用UltraISO ...

  3. libevent使用IOCP网络模型的示例

    这段时间抽空学习了一下强大的网络库libevent,其使用标准C语言编写,支持Windows.Linux.Mac等等主流操作系统,早期版本不支持Windows的IOCP,最新版本已经添加上了,在网上找 ...

  4. day04 mysql单表查询 多表查询 pymysql的使用

    day04 mysql pymysql   一.单表查询     1.having过滤         一般用作二次筛选             也可以用作一次筛选(残缺的: 只能筛选select里面 ...

  5. java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...

  6. Linux service,挂载,定时任务等常用服务

    一.防火墙 防火墙根据配置文件/etc/sysconfig/iptables 来控制本机的“出.入”网络访问行为 其对行为的配置策略有四个策 1. 基础必备技能           查看防火墙状态 s ...

  7. windows 登陆服务器

    点击电脑的左下方开始,然后输入远字,如下图,就可以招到远程桌面了. 点击远程桌面就进入下图界面了.默认情况下,是在常规这个选项卡. 我们切换到显示,可以调节远程桌面的大小,一般我们设置成全屏显示.只要 ...

  8. delphi Treeview用法

    Treeview用于显示按照树形结构进行组织的数据.         Treeview控件中一个树形图由节点(TreeNode)和连接线组成.TtreeNode是TTreeview的基本组成单元.   ...

  9. Nginx的动静分离

    Nginx的动静分离 在之前我们的负载均衡中,我们再jsp中设置了一个背景,这是一个静态资源,Tomcat处理静态资源的效率并没有Nginx高,我们可以通过动静分离将静态资源和动态资源分割开来,Tom ...

  10. jQuery 遍历 - eq() 方法

    <!DOCTYPE html> <html> <head> <style> div { width:60px; height:60px; margin: ...