vue项目通过外部配置文件读取接口地址- 在webpack-index.html模板中使用环境变量
概述:在index.html模板中判断当前环境,处于开发环境下时读取process环境变量、处于生产环境下时读取根目录配置文件(./config.js),两种环境下将配置统一挂载到window全局变量上(SET_CONFIG)
config.js
window.SITE_CONFIG = {
appTitle: '系统测试',
version: '1.0.0',
apiURL: '',
websocketURL: '',
reportURL: ''
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<link rel="icon" href="<%= BASE_URL %>favicon.ico"/>
<title><%= VUE_APP_TITLE %></title>
<% if (process.env.NODE_ENV === 'production' ) { %>
<script type="text/javascript" src="config.js"></script>
<script>
document.title = window.SITE_CONFIG.appTitle
</script>
<% } %>
<!-- 其他环境读取环境变量-->
<% if (process.env.NODE_ENV !== 'production' ) { %>
<script>
window.SITE_CONFIG = {};
window.SITE_CONFIG['appTitle'] = '<%= process.env.VUE_APP_TITLE %>';
window.SITE_CONFIG['version'] = '<%= process.env.VUE_APP_VERSION %>';
window.SITE_CONFIG['apiURL'] = '<%= process.env.VUE_APP_API %>';
window.SITE_CONFIG['websocketURL'] = '<%= process.env.VUE_APP_API_WEBSOCKET %>'
window.SITE_CONFIG['VUE_APP_API_REPORT'] = '<%= process.env.VUE_APP_API_REPORT %>'
</script>
<% } %>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
注意!!!#
当env文件不是默认的.env.development或.env.production而是带有自定义模式的后缀时#
例如.env.prod 执行命令为vue-cli-service build --mode prod#
此时需要在.env.prod中手动指定构建模式#
NODE_ENV=production#
作者:whh666
出处:https://www.cnblogs.com/whh666/p/17308942.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?