vue-cli根据不同的命令自动切换不同环境地址
前言
我们再使用vue脚手架开发项目时,不可避免的涉及到多个环境来回切换接口调用地址的问题,在开发环境中可能会通过 ip 来访问后台接口,但是当项目上线后就要把对用的接口地址换成生产环境的地址,肯定不能再用 ip 来调用,因此我们每次打包发布的时候都要更改相关配置,非常痛苦,今天我们一起来通过代码的方式实现输入不同的命令自动配置不同的环境地址
第一步:搭建vue脚手架,不会的请点击这里,搭建完成之后我们拿到了一个完整的项目
第二步:新建 src -> util -> env.json 文件,文件内不需要写任何内容
第三步:在项目目录根节点,即和 packge.json 文件同级,新建 vue.config.js
第四步:在 vue.config.js 文件中添加如下代码,代码中有详细的注释,不懂可以百度
// 引入 node 自带的操作文件的插件 fs
const fs = require("fs") module.exports = {
configureWebpack: () => {
// writeFileSync 是写向文件写入内容的方法
// process.env 是vue的环境变量,是一个vue自带的固定的参数
// apiconfig 是在 package.json 中定义的一个变量名,可自定义
// trim() 是为了去掉自动加到变量值上的空格
fs.writeFileSync("./src/util/env.json", JSON.stringify({env: process.env.apiconfig.trim()}))
}
}
第五步:修改 package.json -> scripts 节点中 开发环境 和 生产环境 地址的启动命令
注意:apiconfig=serve 和 apiconfig=build 中间不能有空格,否则运行会报错,不信邪的朋友可以加上空格试一试;package.json 中定义的名称要和 vue.config.js 中取值的字段一致
第六步:运行 npm run serve 或者 npm run build,查看env.json 文件内容是否发生变化
输入 npm run serve 后打开 env.json 后发现自动写入了内容
接着停掉项目输入 npm run build 再查看 env.json
查看 env.json 发现输入不同的命令,内容会自动改变
第七步:新建 src -> util -> api.js 文件作为项目的接口域名配置文件,并写入如下演示代码
const apiconfig = {
// 开发环境
"serve":{
getUser:"http://192.168.0.0.1"
},
// 生产环境
"build":{
getUser:"https://www.xxxx.info.com"
}
}
// 引入 env.json 文件
import env from "./env.json"
// 导出不同接口地址
export default apiconfig[env.env]
实际开发中会有多个接口地址,为了演示只写一个,我们根据 env,json 文件中的env值自动导出不同的环境的接口地址
第八步:在需要调用接口的文件中引入 api.js 文件,通过 api.XXX 的方式来完成接口调用
通过 npm run serve 启动项目后,控制台打印如下
发现是开发环境的地址,接着手动修改 env.json 文件中 env 的值,改为 build,然后刷新页面
我们发现,在页面中打印同一个变量,会随着 env.json 的值变化而自动切换为对应环境的接口地址,所以我们已经实现了根据输入不同命令,自动切换环境地址的功能。
vue-cli根据不同的命令自动切换不同环境地址的更多相关文章
- Hadoop2.2.0 自动切换HA环境搭建
自动切换的HA,比手动切换HA集群多了一个zookeeper集群 机器分配: zookeeper:hadoop4,hadoop5,hadoop6 namenode:hadoop4,hadoop5 da ...
- Vue国际化处理 vue-i18n 以及项目自动切换中英文
1. 环境搭建 命令进入项目目录,执行以下命令安装vue 国际化插件vue-i18n npm install vue-i18n --save 2. 项目增加国际化翻译文件 在项目的src下添加lang ...
- [Vue 牛刀小试]:第十七章 - 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍
一.前言 在上一章中,我们开始通过 Vue CLI 去搭建属于自己的前端 Vue 项目模板,就像我们 .NET 程序员在使用 asp.net core 时一样,我们更多的会在框架基础上按照自己的开发习 ...
- flask 自动切换环境
简介: 我就是个半吊子程序员.在单位写点程序,在家也写点程序. 单位是企业网,不能上互联网,家里也没办法连上企业网,没有VPN. 主武器是我的笔记本电脑.在单位有一台淘汰的linux服务器,家里有个N ...
- macOS命令行切换Python版本
目录 brew安装anaconda3 anaconda3环境变量设置 安装双版本 命令后切换python环境 pip ide vscode set 参考 brew安装anaconda3 brew ca ...
- Vue CLI 是如何实现的 -- 终端命令行工具篇
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供了终端命令行工具.零配置脚手架.插件体系.图形化管理界面等.本文暂且只分析项目初始化部分,也就是终端命令行工具的实现. 0. 用法 ...
- Linux登录自动切换root账户与历史命令优化
1:当我们Linux系统优化完成,会使用oldboy用户远程连接CRT登录,每次连接都需要使用sudo su - 或者su - 输入密码登录,请问如何在CRT连接的时候自动的切换到root账户,(提示 ...
- 亲测有效的解决在vue cli@3 create 命令执行后 node-sass无法安装上的问题
在使用Vue cli@3 搭建工程手脚架的过程中.当我们选择了采用 sass 处理 css 编译.在使用vue create test 命令行执行到最后.会到以下这步:然后开始报错: Download ...
- vue cli 3.x 项目部署到 github pages
github pages 是 github 免费为用户提供的服务,写博客,或者部署一些纯静态项目. 最近将 vue cli 3.x 初始化项目部署到 github pages,踩了一些坑,记录如下. ...
随机推荐
- Python Cookbook(第3版) 中文版 pdf完整版|网盘下载内附提取码
Python Cookbook(第3版)中文版介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码 ...
- NOI Online#1 小记
虽然只是一个普通的模拟赛,但是毕竟是我第一次参加官方组织的比赛,所以还是写一篇小记纪念一下吧(毕竟经验少,太菜了. 上午一直颓着,随便看了两眼文化课,补了补昨天的化学作业,就当是对明天月考的复习吧(月 ...
- 使用 Python 为女神挑选口红
口红对于女生来说永远不嫌多,而男生也搞不明白珊瑚红.番茄色.斩男色等等颜色有什么区别,不都是红色么?当送给女神的口红是她不适合的,那结果就是口红进入垃圾箱还算是轻的,重则拉黑处理.男生们也不用着急,我 ...
- iptables看门狗
近来业内很多服务器因redis造成服务器被黑,这个攻击的防范重点在于防火墙!! 有时为了方便我们可能会将iptables临时关闭,方便完倘若忘记把它打开,黑客大摇大摆就走进来. 这时候,我们需要条看门 ...
- CSS表单与数据表(下)
2.表单 表单是用户输入内容的地方.表单涉及的控件很多,而且一直很难给它们应用样式.无法控制样式的部分,可以通过自定义控件来解决. 2.1 简单的表单 2.1.1 fieldset与legend fi ...
- 蜻蜓点水说说Redis的ziplist的奥秘
本篇博客参考: Redis 深度历险:核心原理与应用实践 Redis内部数据结构详解(4)--ziplist Redis的压缩列表ZipList 上篇博客中,我给大家蜻蜓点水般的介绍了Redis中SD ...
- Vue老项目支持Webpack打包
1.老的vue项目支持webpack打包 最近在学习Vue.js.版本是2.6,webpack的版本也相对较老,是2.1.0版本.项目脚手架只配置了npm run dev和npm run build. ...
- 2020-05-31:假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来?
福哥答案2020-05-31: 使用keys指令可以扫出指定模式的key列表.对方接着追问:如果这个redis正在给线上的业务提供服务,那使用keys指令会有什么问题?这个时候你要回答redis关键的 ...
- Linux学习日志——基本指令②
文章目录 Linux学习日志--基本指令② 前言 touch cp (copy) mv (move) rm vim 输出重定向(> 或 >>) cat df(disk free) f ...
- 【译】New experimental Razor editor for Visual Studio
随着 Visual Studio 2019 16.7 Preview 4 的发布,现在可以尝试我们新的实验性 Razor 编辑器,用于本地开发,包括 MVC.Razor Page 和 Blazor.我 ...