https://cli.vuejs.org/zh/guide/mode-and-env.html#%E6%A8%A1%E5%BC%8F

模式

模式是 Vue CLI 项目中一个重要的概念。默认情况下,一个 Vue CLI 项目有三个模式:

  • development 模式用于 vue-cli-service serve

  • production 模式用于 vue-cli-service buildvue-cli-service test:e2e

  • test 模式用于 vue-cli-service test:unit

package.json默认配置
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
改为 
"scripts": {
"serve": "vue-cli-service serve --mode development",
"test": "vue-cli-service build --mode test",
"build": "vue-cli-service build --mode production",
"lint": "vue-cli-service lint"
},

--mode XXX 和下面新建的.env.XXX一一对应。

新建.env.development .env.test .env.production

注意:

  1. .env.development .env.test .env.production修改了都要重启服务。

  2. vue项目中任意位置可以通过process.env.NODE_ENV 和process.env.VUE_APP_ENV来访问变量

// .env.development
NODE_ENV='development'
#本地开发模式
# 变量must start with VUE_APP_
VUE_APP_ENV = 'development' //.env.test 测试环境配置 是NODE_ENV=production 不是test
NODE_ENV='production'
#打包到测试环境
# must start with VUE_APP_
VUE_APP_ENV = 'test' //.env.production 正式环境配置
NODE_ENV='production'
#打包到线上环境
VUE_APP_ENV = 'production'

#env.development.js
// 本地环境配置
module.exports = {
title: 'vue-h5-template',
baseUrl: 'http://localhost:9018', // 项目地址
baseApi: 'https://test.xxx.com/api', // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://imgs.solui.cn',
desc:'本地开发环境'
} #env.test.js 测试
module.exports = {
title: 'vue-h5-template',
baseUrl: 'https://test.xxx.com', //test 测试项目地址
baseApi: 'https://test.xxx.com/api', //test 测试api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn:'https://imgs.solui.cn',
desc:'测试环境'
} #env.production.js // 正式 module.exports = {
title: 'vue-h5-template',
baseUrl: 'https://www.xxx.com/', // 正式项目地址
baseApi: 'https://www.xxx.com/api', // 正式api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn:'https://imgs.solui.cn',
desc:'线上环境'
} index.js
// 根据环境引入不同配置 process.env.NODE_ENV=development|test|production
const config = require('./env.' + process.env.VUE_APP_ENV)
module.exports=config // 根据环境不同引入不同baseApi地址 如App.vue中
// import config from "@/config"; import也可以 但是毕竟是module.export导出的所以用require()接收
const { title, baseUrl, baseApi, desc } = require("@/config");
console.log(process.env.NODE_ENV);
console.log(title);
console.log(baseUrl);
console.log(baseApi);
console.log(desc);
在axios中使用 import config from "@/config";
import axios from 'axios'
import store from '@/store'
import { Toast } from 'vant'
// 根据环境不同引入不同api地址
const { title, baseUrl, baseApi, desc } = require("@/config");
// create an axios instance
const service = axios.create({
baseURL: baseApi, // url = base api url + request url
withCredentials: true, // send cookies when cross-domain requests
timeout: 5000 // request timeout
})
...
#main.js
// 设置 js中可以访问 $cdn
// 引入cdn
const { $cdn } = require('./config')
Vue.prototype.$cdn = $cdn
#vue.config.js
// 设置 css中可以访问 $cdn
const path = require("path");
const config=require('./src/config')
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {
// // 注入 `sass` 的全局变量,以后vue页面直接使用无需引用。, $cdn可以配置图片cdn
scss: {
prependData: `
@import "./src/styles/main.scss";
$cdn: "${config.$cdn}"; `
}
},
// 启用 CSS modules for all css / pre-processor files.
modules: false
},
<script>
//在js中使用图片地址
console.log(this.$cdn) //是因为 Vue.prototype.$cdn = $cdn
</script>
<style lang="scss" scoped>
//在css中使用图片地址
.logo {
width: 120px;
height: 120px;
background: url($cdn + '/weapp/logo.png') center / contain no-repeat;
//是因为vue.config.js $cdn: "${config.$cdn}";
}
</style>
 

vue 多环境打包的更多相关文章

  1. vue分环境打包配置不同命令

    1.安装cross-env (cross-env能跨平台地设置及使用环境变量)cnpm/npm  i  cross-env -D 2.新建模板 红色的为相关文件 3.配置各个文件 (1)config下 ...

  2. VUE生产环境打包build

    1.进入到项目根目录执行 npm run build 此时会自动打包在dist目录下 2.安装服务 npm  install -g serve 3.启动 serve dist 总结: 以上就是生产环境 ...

  3. vue分环境打包配置方法一

    直接上代码配置: 首先是config下面的文件修改 dev.env.js  'use strict' const merge = require('webpack-merge') const prod ...

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

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

  5. 前端自动分环境打包(vue和ant design)

    现实中的问题:有时候版本上线的时候,打包时忘记切换环境,将测试包推上正式服务器,那你就会被批了. 期望:在写打包的命令行的时候就觉得自己在打包正式版本,避免推包时候的,不确信自己的包是否正确. 既然有 ...

  6. VUE 如何分环境打包(开发/测试/生产)配置

    前言 之前小玲一直处于更新,迭代项目的状态,开发环境.测试环境.生产环境都是前辈配置好的,自己几乎没有配置过,这次做几个新项目时,面临着上线,需要分环境打包配置,于是在网上遨游了一会会,摸索着按照网上 ...

  7. vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令

    目录 1,前言 2,.env文件的作用 3,配置.env文件 4,配置启动命令 5,获取.env中的全局变量 5,实际用处 1,前言 分享一下vue项目中利用.env文件存储全局环境变量,以及利于项目 ...

  8. Vue项目分环境打包的实现步骤

    转:https://blog.csdn.net/xinzi11243094/article/details/80521878 方法一:亲测真的有效 在项目开发中,我们的项目一般分为开发版.测试版.Pr ...

  9. vue cli2.x配置多环境打包

    一.安装 npm install --save-dev cross-env 二.配置步骤 1.修改config下的文件 //test.env.js 'use strict' module.export ...

随机推荐

  1. 用 Python 了解一下最炫国漫《雾山五行》

    看动漫的小伙伴应该知道最近出了一部神漫<雾山五行>,其以极具特色的水墨画风和超燃的打斗场面广受好评,首集播出不到 24 小时登顶 B 站热搜第一,豆瓣开分 9.5,火爆程度可见一斑,就打斗 ...

  2. mysql存储引擎InnoDB详解,从底层看清InnoDB数据结构

    InnoDB一个支持事务安全的存储引擎,同时也是mysql的默认存储引擎.本文主要从数据结构的角度,详细介绍InnoDB行记录格式和数据页的实现原理,从底层看清InnoDB存储引擎. 本文主要内容是根 ...

  3. Eclipse工具的简单使用

    前言 虽然编写Java用Idea比较好,但是对于正处于大学阶段的我,还是要和老师的步伐保持一致,但是,用的Idea这个工具多了,我就感觉对eclipse这个工具不是怎么熟悉了,甚至还有点对一些工具的使 ...

  4. python3.x与2.x中print输出不换行

    python3.x: print(i,end=' ') 循环输出: ... ------------------------- print(i,end='!') 循环输出:!!!... end=单引号 ...

  5. C#设计模式之16-迭代器模式

    迭代器模式(Iterator Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/417 访问. 迭代器模式 ...

  6. 关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑

    因客户需求,与第三方对接,调用非托管DLL,之前正常对接的程序,却总是报“内存已损坏的异常”,程序进程直接死掉,折腾到这个点(2018-05-11 00:26),终于尘埃落定,直接上程序. 之前的程序 ...

  7. 利用 Github Actions 自动更新 docfx 文档

    利用 Github Actions 自动更新 docfx 文档 Intro docfx 是微软出品一个 .NET API 文档框架,有一个理念是代码即文档,会根据项目代码自动生成 API 文档,即使没 ...

  8. Android EditText判断输入的字符串是否为数字(包含小数点)

    有时候项目需要获取EditText所输入的字符串为纯数字(含小数),一般情况下在xml中设置EditText的的属性(我是直接设置digits为数字和小数点,即digits="0123456 ...

  9. 【Eclipse+PyDev】使用Python的IDE安装及配置详解

    转的文章 https://blog.csdn.net/jkwwwwwwwwww/article/details/51338230 https://blog.csdn.net/Jkwwwwwwwwww/ ...

  10. 企业站如何做长尾关键词seo优化

    http://www.wocaoseo.com/thread-315-1-1.html     很多企业站,优化到一定程度后网站的流量很快就上去了,但是之后网站就无法更进一步.那么对于普通中小型企业站 ...