思路:新建一个 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. android.content.ReceiverCallNotAllowedException: 解决方法

    一. android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to reg ...

  2. bzoj3884

    http://www.lydsy.com/JudgeOnline/problem.php?id=3884 拓展欧拉定理 http://blog.csdn.net/Pedro_Lee/article/d ...

  3. 炫酷的 CSS 形状(值得收藏)

    在今日头条中看到炫酷的 CSS 形状,就记录一下: 1.圆形 #circle { width: 100px; height: 100px; background: red; border-radius ...

  4. C++ 值初始化和默认初始化

    对于初始化的问题,我之前一直傻傻分不清.有关初始化以及赋值的区别也是一问题,这次回过头来看,配合<<CSAPP>>的内容,对初始化有了一些新的认识. 声明: 在环境/上下文中指 ...

  5. 【转载】HTTP协议详解

    [本文转自]http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规 ...

  6. Ruby on Rails5 直接的路径无效问题

    比如设置个背景 background = "../../assets/images/test1.jpg" 会发现无效   网上一翻,Rails里面直接指定无效.   解决方法就是把 ...

  7. [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(5)移除 App 预览或屏幕快照

    您可以随时移除 App 预览,但仅可在 App 状态为可编辑时才能移除屏幕快照.要了解可编辑的状态,请前往 App 状态. 必要职能:“帐户持有人”职能.“管理”职能.“App 管理”职能或“营销”职 ...

  8. linux学习之路4 系统目录架构

    linux树状文件系统结构 bin(binary) 保存可执行文件 也就是保存所有命令 boot 引导目录 保存所有跟系统有关的引导程序 其中Vmlinux文件最为重要,是系统内核 dev 保存所有的 ...

  9. mysql-installer-web-community-5.7.18.1.msi的安装(图文详解)

    不多说,直接上干货! 说在前面的话 我为什么已经尝试和使用过同类型产品的很多MySQL版本,还要书写这篇博客呢?基于mysql-installer-web-community-5.7.18.1.msi ...

  10. C#常见问题总结(三)

    11.sql比access好在哪里,为什么都用sql 解决方法: 数据量大,可以在服务器端,access一般在单机的时候用 12.c#基础视频教程有吗 解决方法: 零基础学C#这本书带全套C#基础视频 ...