思路:新建一个 process.env 变量。

把 webpack 配置放到 vue.config.js 里面。

如果根目录下没有该文件,新建。配置参考:https://cli.vuejs.org/zh/config/

vue.config.js 配置参考:

const webpack = require('webpack')
const merge = require('webpack-merge')
const env = process.env module.exports = {
publicPath: './',
outputDir: 'dist',
assetsDir: 'static',
productionSourceMap: false,
configureWebpack: {
output: {
filename: '[hash].js'
},
plugins: [
new webpack.DefinePlugin({
'process.env': merge(env, {
'AJAX_URL': '"' + process.env.AJAX_URL + '"' // 新建 AJAX_URL 变量
})
})
]
}
}

安装工具

npm install --save-dev cross-env

npm 命令加上 AJAX_URL 的赋值操作,

dev:开发环境

testing:灰度发布环境

production:生产环境

"scripts": {
"dev:dev": "cross-env AJAX_URL=dev npm run dev",
"dev:test": "cross-env AJAX_URL=testing npm run dev",
"dev:pro": "cross-env AJAX_URL=production npm run dev",
"dev": "vue-cli-service serve",
"build:dev": "cross-env AJAX_URL=dev npm run build",
"build:test": "cross-env AJAX_URL=testing npm run build",
"build:pro": "cross-env AJAX_URL=production npm run build",
"build": "vue-cli-service build"
}

这样,就可以在业务代码里面使用 process.env.AJAX_URL 这个变量了。

可以把ajax请求的配置放到一个文件里面

let SITE_CONFIG

if (process.env.AJAX_URL === 'production') {
SITE_CONFIG = { // 生产环境
baseUrl: '//www.example.com/', // api接口请求地址
cdnUrl: '//www.cdn.com/' // cdn地址
}
} else if (process.env.AJAX_URL === 'testing') {
SITE_CONFIG = { // 灰度发布环境
baseUrl: '//test.example.com/', // api接口请求地址
cdnUrl: '//test.cdn.com/' // cdn地址
}
} else if (process.env.AJAX_URL === 'dev') {
SITE_CONFIG = { // 开发环境
baseUrl: '//dev.example.com/', // api接口请求地址
cdnUrl: '//dev.cdn.com/' // cdn地址
}
} else {
SITE_CONFIG = { // 本地环境
baseUrl: '/', // api接口请求地址
cdnUrl: '/' // cdn地址
}
} export default SITE_CONFIG

以上。

只需运行对应命令就可以实现平台切换了。

vue-cli 3.x 配置多环境的更多相关文章

  1. Vue学习笔记(五)——配置开发环境及初建项目

    前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...

  2. vue cli 3 lintOnSave 配置有时无效问题

    一个使用vue cli 3.2创建的项目,创建时未开启 lintOnSave,后来希望开启并设置为 lintOnSave: 'error',但配置不生效. 解决方法1:新创建项目(此时vue cli ...

  3. vue cli 3.x 配置使用 sourceMap

    项目使用vue cli 3.x搭建,没有了配置文件,如何更方便的查找到对应的scss文件,配置项目支持sourceMap方式? 分二步走: 1.项目根目录(不是src目录,不要搞错了)添加vue.co ...

  4. vue,react,angular本地配置nginx 环境单页面应用

    一.起因:项目使用VUE,和react.构建单页面应用.在nginx的环境下只有一个index.html入口.这时候默认能够访问到vue,和react 路由 配置中的首页.内部连接也能够跳转但是不能给 ...

  5. vue/cli 3.0配置NODE_ENV

    原文地址 在项目开发中我们需要配置环境变量,开发环境,生产环境和测试环境.在cli 2.0的版本中我们是通过在config文件夹进行配置的,vue/cli 3.0相对简单,只需要在项目根目录创建.en ...

  6. Vue CLI 是如何实现的 -- 终端命令行工具篇

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供了终端命令行工具.零配置脚手架.插件体系.图形化管理界面等.本文暂且只分析项目初始化部分,也就是终端命令行工具的实现. 0. 用法 ...

  7. 使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development、production)

    使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development.production) --mode 指定环境模式 ...

  8. @vue/cli 3.x项目脚手架 webpack 配置

    @vue/cli  是一个基于 Vue.js 进行快速开发的完整系统. @vue/cli   基于node服务  需要8.9以上版本 可以使用 nvm等工具来控制node版本  构建于 webpack ...

  9. @vue/cli 3.x 版本配置productionGzip提高性能

    第一步:安装插件 npm i -D compression-webpack-plugin 第二步:引入.在文件vue.config.js里导入compression-webpack-plugin,并添 ...

  10. VUE CLI环境搭建文档

    VUE CLI环境搭建文档 1.安装Node.js 下载地址 https://nodejs.org/zh-cn/download/ 2.全局安装VUE CLI win+R键打开运行cmd窗口输入一下代 ...

随机推荐

  1. G. 铁路修复计划 最小生成树

    G. 铁路修复计划 二分答案,改变边的权值,找最小生成树即可. 类似的思想还可以用在单度限制最小生成树和最优比例生成树上. #include<iostream> #include<c ...

  2. POJ2503 Babelfish map或者hash_map

    POJ2503 这是一道水题,用Map轻松AC. 不过,可以拿来测一下字符串散列, 毕竟,很多情况下map无法解决的映射问题需要用到字符串散列. 自己生成一个质数, 随便搞一下. #include&l ...

  3. 昆石VOS3000_2.1.2.0完整安装包及安装脚本

    安装包下载地址 http://www.51voip.org/post/57.html 安装教程: 上传安装包 ·给整个目录授权 chmod 777 /root/vosintsall 1.安装前准备 首 ...

  4. 服务器端解决ajax跨域问题

    这里描述以Tomcat为Web服务器情况下的解决办法,在Java Web程序的WEB-INF下的web.xml文件中加入如下配置即可. <!--cors filter--> <fil ...

  5. visual studio使用dos命令在生成项目时复制文件到指定目录

    本人使用软件:vs2015 拷贝“项目1”的 bin目录 下, 项目配置的名称(“Release”,“Debug”)目录下,所有内容到“项目2”输出目录(存在直接覆盖): xcopy $(Soluti ...

  6. [App Store Connect帮助]六、测试 Beta 版本(3.1)管理测试员:添加内部测试员

    您可以添加至多 25 个内部测试员(您的 App Store Connect 用户)使用“TestFlight Beta 版测试”来测试您的 App.在您上传了至少一个构建版本之后,才可添加测试员. ...

  7. video 能播放声音不能播放视频,黑屏

    与视频编码格式有关,mp4的视频编码有三种:MPEG4(DivX),MPEG4(Xvid),AVC(H264). 浏览器播放视频的支持有限,MP4格式的视频只支持h.264的视频: 视频编码: AVC ...

  8. Linux学习之路2 Bash的基本操作

    一.SHELL的介绍 shell分为两种:CLI(command Line Interface)和GUI(Graphical User Interface) 操作系统中的shell: GUI:GNOM ...

  9. Spring加载applicationContext.xml实现spring容器管理的几种方式

    package com.etc.test; import org.junit.Test; import org.springframework.beans.factory.BeanFactory; i ...

  10. WPF 添加 gif 图片

    1. 如何在wpf窗体中添加gif动态图片: https://stackoverflow.com/questions/210922/how-do-i-get-an-animated-gif-to-wo ...