vue的index.html中獲取環(huán)境變量和業(yè)務(wù)判斷圖文詳解
1,前言:
對vue來說index.html是一個總的前端項目入口文件,vue是單頁面應(yīng)用,掛載在id為app的div標簽下,然后動態(tài)渲染路由模板;
2,獲取環(huán)境變量
我們可以正常在vue組件中正常訪問自定義的環(huán)境變量和vue中默認的環(huán)境:如
console.log('當前環(huán)境', process.env.NODE_ENV);
打印為:development
console.log('當前自定義的環(huán)境變量', process.env.VUE_APP_RUN_ENV);
打印為:uat但是在 index.html 中只能使用 <%= VUE_APP_xxx %> 或<%- VUE_APP_xxx %> 字符串獲取到
<script>
console.log("本地開發(fā)環(huán)境:",'<%= VUE_APP_RUN_ENV %>');
console.log("本地開發(fā)環(huán)境2:",'<%- VUE_APP_RUN_ENV %>');
</script>vue-cli官網(wǎng)的解釋: 鏈接

注意: <% expression %> 可以用來做 JavaScript 的流程控制,可以結(jié)合 if else 語句使用:
<% if (process.env.VUE_APP_RUN_ENV=== 'production' ) { %>
<script>
// js 代碼
</script>
<% } else if (process.env.VUE_APP_RUN_ENV=== 'test') {%>
<script>
// js 代碼
</script>
<% } else {%>
<script>
// js 代碼
</script>
<% } %>3,使用:
我們在 index.html中獲取到環(huán)境變量可以做一些特殊的業(yè)務(wù)需求;
比如:使用騰訊地圖中我們要引入一些必要的 js文件,但是要攜帶key值用來效驗用戶,但是 生產(chǎn)環(huán)境的key值和開放環(huán)境的key值是不一樣的 ,此時我們可以在 index.html 中進行對環(huán)境的判斷進行按需引入;
下面是騰訊地圖的一些js 文件:
<script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=6EEBZ-3EUCD-XZP4T-PKTRG-GUY47-ROFC3"></script> <script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&key=6EEBZ-3EUCD-XZP4T-PKTRG-GUY47-ROFC3"></script>
判斷如下:
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1, minimum-scale=1">
<link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >
<title>微視頻后臺管理</title>
<!-- 下面是判斷 ------------------------------------------------------>
<% if (process.env.VUE_APP_RUN_ENV === 'production' ) { %>
<script type="text/javascript" src="https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js"></script>
<script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=V6VBZ-KD2OW-ATORL-RRKFW-QICF2-O3B7H"></script>
<script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&key=V6VBZ-KD2OW-ATORL-RRKFW-QICF2-O3B7H"></script>
<script>
console.log("生產(chǎn)環(huán)境");
</script>
<% } else if (process.env.VUE_APP_RUN_ENV === 'test') {%>
<script>
console.log("測試環(huán)境");
</script>
<% } else {%>
<script type="text/javascript" src="https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js"></script>
<script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=6EEBZ-3EUCD-XZP4T-PKTRG-GUY47-ROFC3"></script>
<script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&key=6EEBZ-3EUCD-XZP4T-PKTRG-GUY47-ROFC3"></script>
<script>
console.log("本地開發(fā)環(huán)境:",'<%= VUE_APP_RUN_ENV %>');
console.log("本地開發(fā)環(huán)境2:",'<%- VUE_APP_RUN_ENV %>');
</script>
<% } %>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
</body>
</html>運行項目如下:
通過f12審查資源可以看到所需的js已經(jīng)加載進來了;且也已經(jīng)區(qū)別了開發(fā)環(huán)境和生產(chǎn)環(huán)境;如下圖:
1,本地開發(fā)環(huán)境:

2,生產(chǎn)部署環(huán)境:

總結(jié)
到此這篇關(guān)于vue的index.html中獲取環(huán)境變量和業(yè)務(wù)判斷的文章就介紹到這了,更多相關(guān)vue index.html獲取環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
uniapp開發(fā)打包多端應(yīng)用完整方法指南
這篇文章主要介紹了uniapp開發(fā)打包多端應(yīng)用完整流程指南,包括了uniapp打包小程序,uniapp打包安卓apk,uniapp打包IOS應(yīng)用,需要的朋友可以參考下2022-12-12
Vue生產(chǎn)和開發(fā)環(huán)境如何切換及過濾器的使用
本文主要介紹了Vue生產(chǎn)、開發(fā)環(huán)境如何切換及過濾器的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08

