最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue?Cli中的環(huán)境變量和模式

 更新時(shí)間:2023年10月30日 16:52:56   作者:努力的小朱同學(xué)  
這篇文章主要介紹了Vue?Cli中的環(huán)境變量和模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

環(huán)境變量

? 我們?cè)谑褂?Vue-cli 創(chuàng)建的Vue項(xiàng)目中,可以在構(gòu)建和運(yùn)行時(shí)為項(xiàng)目設(shè)置環(huán)境變量,這些環(huán)境變量會(huì)根據(jù)環(huán)境(模式)的不同,而自動(dòng)注入到項(xiàng)目中,也就是說(shuō)我們可以根據(jù)環(huán)境不同,設(shè)置不同的環(huán)境變量或者給同個(gè)環(huán)境變量賦予不同的值,從而實(shí)現(xiàn)不同的效果。

但是請(qǐng)不要在環(huán)境變量中存儲(chǔ)任何機(jī)密敏感信息(秘鑰等),因?yàn)榄h(huán)境變量會(huì)隨著構(gòu)建打包嵌入到輸出的代碼中,這意味著任何人都有可能看到這些變量的值,從而造成信息泄露。

1.環(huán)境變量只能放置在項(xiàng)目根目錄

下的特定.env環(huán)境文件中:

.env          // 通用文件,在所有環(huán)境中都會(huì)被注入到項(xiàng)目中
.env.local    // 本地通用文件,只有在本地運(yùn)行的所有環(huán)境中都會(huì)被注入到項(xiàng)目中,但是會(huì)被git忽略,不能提交到git倉(cāng)庫(kù)中
.env.[mode]   // 模式專用文件,只有在指定的mode模式下,才會(huì)注入到項(xiàng)目中 
.env.[mode].local // 本地模式專用文件,只有在本地運(yùn)行的指定的mode模式下,才會(huì)注入到項(xiàng)目中,且會(huì)被git忽略,不能提交到git倉(cāng)庫(kù)中

// 例如
.env.development   // development模式專用文件,只有在development模式下,才會(huì)注入到項(xiàng)目中 
.env.development.local  // 本地development模式專用文件

如果項(xiàng)目中同時(shí)聲明了多個(gè)個(gè)不同類型環(huán)境文件,并且這些文件中存在同名的環(huán)境變量時(shí),會(huì)根據(jù) .env.[mode].local > .env.[mode] > .env.local > .env 的優(yōu)先級(jí)先后順序決定環(huán)境變量的值,最終環(huán)境變量的值會(huì)取優(yōu)先級(jí)最高的環(huán)境文件中的那個(gè)值。

// 多個(gè)環(huán)境文件
// .env
VUE_APP_AAA=aaa
// 如果只有上面的文件 則最終變量值為 aaa

// .env.local
VUE_APP_AAA=bbb
// 如果只有上面的兩個(gè)文件 則最終變量值為 bbb

// .env.development
VUE_APP_AAA=ccc
// 如果只有上面的三個(gè)文件 則最終變量值為 ccc

// .env.development.loacal
VUE_APP_AAA=ddd
// 如果只有上面的四個(gè)文件 則最終變量值為 ddd

由于環(huán)境文件是在運(yùn)行vue-cli-service 運(yùn)行命令時(shí)載入的,因此當(dāng)我們修改了環(huán)境文件時(shí),必須重新啟動(dòng)項(xiàng)目才能生效。

2.環(huán)境變量以鍵值對(duì)的形式在環(huán)境文件中聲明

目前只有NODE_ENVBASE_URL兩個(gè)特殊變量和以VUE_APP_開頭聲明的自由變量,能夠通過(guò)webpack.DefinePlugin注入到項(xiàng)目中:

VUE_APP_VAR=123abc
BASE_URL=./abc(不推薦修改該變量)
NODE_ENV=test (不推薦修改該變量)

兩個(gè)特殊變量NODE_ENVBASE_URL都擁有自己的默認(rèn)屬性值,因此不建議在環(huán)境文件中聲明同名變量:

  • NODE_ENV: 值為"development"、"production""test" 三者之一,具體的值取決于項(xiàng)目運(yùn)行的模式。
  • BASE_URL:值為vue.config.js中的publicPath選項(xiàng)的值,即項(xiàng)目在部署時(shí)的基礎(chǔ)路徑。

3.環(huán)境變量在項(xiàng)目中

需要通過(guò)process.env.變量名的形式來(lái)訪問(wèn)

如果我們想在項(xiàng)目的頁(yè)面中使用環(huán)境變量,那么我們需要通過(guò)process.env.變量名的方式來(lái)訪問(wèn)對(duì)應(yīng)值:

console.log(process.env.VUE_APP_VAR) // 123abc
console.log(process.env.BASE_URL) // ./abc
console.log(process.env.NODE_ENV) // test

除了在普通頁(yè)面中使用環(huán)境變量之外,我們也可以在項(xiàng)目的public/index.html中以HTML插值(lodash template語(yǔ)法)的方式來(lái)使用環(huán)境變量:

? ① <%= 變量名 %>:用來(lái)做不轉(zhuǎn)義插值,如果插入的環(huán)境變量中,包含HTML標(biāo)簽,則會(huì)被瀏覽器解析,類似于設(shè)置innerHTML。

? ② <%- 變量名 %>:用來(lái)做HTML轉(zhuǎn)義插值,如果插入的環(huán)境變量中,包含HTML標(biāo)簽,不會(huì)被瀏覽器解析,只是作為字符串插入到頁(yè)面上,類似于設(shè)置innerText。

? ③ <% if(變量名) %>:用來(lái)做JavaScript流程控制。

// .env 

// 聲明一個(gè)帶有HTML標(biāo)簽的環(huán)境變量
VUE_APP_HTML=<h3>h3標(biāo)題</h3>
<!-- index.html -->

<!-- 在元素屬性中使用 -->
<link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >
<!-- 在JS中使用 -->
<script>
  console.log('process.env.NODE_ENV----<%= NODE_ENV %>');
</script>
<!-- 轉(zhuǎn)義插值 -->
<div><%- VUE_APP_HTML %></div>
<!-- 不轉(zhuǎn)義插值 -->
<div> <%= VUE_APP_HTML %> </div>
<!-- 進(jìn)行JS流程控制 -->
<% if(NODE_ENV==='development' ) { %>
		<div>開發(fā)</div>
<% } %>
<% if(NODE_ENV==='test' ) { %>
		<div>測(cè)試</div>
<% } %>
<% if(NODE_ENV==='production' ) { %>
	<div>生產(chǎn)</div>
<% } %>

頁(yè)面效果:

在這里插入圖片描述

模式

默認(rèn)情況下,一個(gè)通過(guò)Vue Cli 創(chuàng)建的Vue項(xiàng)目,擁有三種模式:development、testproduction,這三種模式分別默認(rèn)對(duì)應(yīng)了不同的項(xiàng)目執(zhí)行命令,從而創(chuàng)建不同的webpack 配置:

development

該模式為開發(fā)模式,默認(rèn)對(duì)應(yīng)vue-cli-service serve命令,也是默認(rèn)的啟動(dòng)項(xiàng)目運(yùn)行命令,該模式將會(huì)創(chuàng)建一個(gè)用于開發(fā)時(shí)快速構(gòu)件的webpack配置,啟用代碼熱更新、不會(huì)對(duì)代碼進(jìn)行優(yōu)化和壓縮、打包速度快但生成的代碼體積較大。

test

該模式為測(cè)試模式,默認(rèn)對(duì)應(yīng)vue-cli-service test:unit命令,該模式將會(huì)創(chuàng)建一個(gè)優(yōu)化過(guò)后的,用于單元測(cè)試的 webpack 配置,它并不會(huì)處理圖片以及一些對(duì)單元測(cè)試非必需的其他資源,只會(huì)去執(zhí)行所有的測(cè)試用例,并在測(cè)試完成后自動(dòng)關(guān)閉。

production

該模式為生產(chǎn)模式,默認(rèn)對(duì)應(yīng)vue-cli-service buildvue-cli-service test:e2e命令,該模式將會(huì)創(chuàng)建一個(gè)用于部署的webpack配置,對(duì)項(xiàng)目進(jìn)行性能優(yōu)化,對(duì)代碼進(jìn)行優(yōu)化和壓縮,并打包生成用于在生產(chǎn)環(huán)境部署的文件,打包速度會(huì)比較慢,但是生成的代碼文件體積較小,加載速度較快。

除了根據(jù)執(zhí)行的命令,運(yùn)行對(duì)應(yīng)的默認(rèn)項(xiàng)目模式之外,我們還可以通過(guò)在執(zhí)行命令時(shí),在命令后面加上--mode 模式,覆蓋默認(rèn)的模式,顯式的指明要運(yùn)行的項(xiàng)目模式。

這三種模式除了會(huì)決定webpack配置之外,還會(huì)創(chuàng)建一個(gè)名為NODE_ENV的環(huán)境變量,該環(huán)境變量的值為當(dāng)前的項(xiàng)目模式:development、testproduction。

如果我們?cè)趯?duì)應(yīng)的環(huán)境文件中提前聲明了環(huán)境變量NODE_ENV最好不要!),那么我們需在在執(zhí)行vue-cli-service ***命令之前移除掉這個(gè)環(huán)境變量,或者在執(zhí)行命令時(shí),顯式的指明要運(yùn)行的項(xiàng)目模式。

否則該環(huán)境變量的值,會(huì)干擾項(xiàng)目的運(yùn)行模式。

// package.json(待補(bǔ)充)
 "scripts": {
    "serve": "vue-cli-service serve", // 默認(rèn)為 development 模式
    "build": "vue-cli-service build", // 默認(rèn)為 production 模式
    "test": "vue-cli-service test:unit", // 默認(rèn)為 test 模式
    "serve2": "vue-cli-service serve --mode production", // 顯式的指定運(yùn)行 production 模式
   	"build2": "vue-cli-service build --mode test", // 顯式的指定運(yùn)行 test 模式
    "test2": "vue-cli-service test:unit --mode development", // 顯式的指定運(yùn)行 development 模式
  },

在頁(yè)面中獲取項(xiàng)目的運(yùn)行模式:

// process.env.NODE_ENV 即可獲取運(yùn)行模式
mounted() {
    console.log(process.env.NODE_ENV);
},

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3配置代理后頁(yè)面500/404問(wèn)題

    Vue3配置代理后頁(yè)面500/404問(wèn)題

    這篇文章主要介紹了Vue3配置代理后頁(yè)面500/404問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Element-ui DatePicker顯示周數(shù)的方法示例

    Element-ui DatePicker顯示周數(shù)的方法示例

    這篇文章主要介紹了Element-ui DatePicker顯示周數(shù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue單頁(yè)面改造多頁(yè)面應(yīng)用詳解

    vue單頁(yè)面改造多頁(yè)面應(yīng)用詳解

    本文主要介紹了vue單頁(yè)面改造多頁(yè)面應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue登錄成功之后的token處理詳細(xì)步驟

    vue登錄成功之后的token處理詳細(xì)步驟

    Token是身份驗(yàn)證后服務(wù)端返回的令牌,常用于訪問(wèn)授權(quán)API和頁(yè)面權(quán)限校驗(yàn),Token數(shù)據(jù)可存儲(chǔ)在本地或Vuex中,本地存儲(chǔ)可實(shí)現(xiàn)數(shù)據(jù)持久化,這篇文章主要介紹了vue登錄成功之后的token處理詳細(xì)步驟,需要的朋友可以參考下
    2024-10-10
  • 關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題

    關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題

    這篇文章主要介紹了關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue3 table表格組件的使用

    Vue3 table表格組件的使用

    這篇文章主要介紹了Vue3 table表格組件的使用,文章圍繞table表格組件是如何使用的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 使用yarn?build?打包vue項(xiàng)目時(shí)靜態(tài)文件或圖片未打包成功的問(wèn)題及解決方法

    使用yarn?build?打包vue項(xiàng)目時(shí)靜態(tài)文件或圖片未打包成功的問(wèn)題及解決方法

    這篇文章主要介紹了使用yarn?build?打包vue項(xiàng)目時(shí)靜態(tài)文件或圖片未打包成功的問(wèn)題及解決方法,解決方法不復(fù)雜通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • vue+video.js實(shí)現(xiàn)視頻播放列表

    vue+video.js實(shí)現(xiàn)視頻播放列表

    這篇文章主要為大家詳細(xì)介紹了vue+video.js實(shí)現(xiàn)視頻播放列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue 基于element-ui 分頁(yè)組件封裝的實(shí)例代碼

    vue 基于element-ui 分頁(yè)組件封裝的實(shí)例代碼

    這篇文章主要介紹了vue 基于element-ui 分頁(yè)組件封裝的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • vue3+springboot部署到Windows服務(wù)器的詳細(xì)步驟

    vue3+springboot部署到Windows服務(wù)器的詳細(xì)步驟

    這篇文章主要介紹了vue3+springboot部署到Windows服務(wù)器,配置Nginx時(shí),因?yàn)楝F(xiàn)在是把vue前端交給了Nginx代理,所以這里的端口號(hào)不一定是我們?cè)趘ue項(xiàng)目中設(shè)置的端口號(hào),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-10-10

最新評(píng)論

静安区| 合山市| 光山县| 新巴尔虎左旗| 西乡县| 淮安市| 长宁区| 慈溪市| 洪湖市| 沅江市| 九龙坡区| 应用必备| 岳西县| 长海县| 沧源| 镇远县| 英超| 土默特左旗| 渑池县| 莱州市| 厦门市| 宜兴市| 阿勒泰市| 峨边| 中江县| 许昌市| 三门县| 通辽市| 双鸭山市| 明星| 弋阳县| 普兰店市| 尚义县| 松潘县| 抚松县| 海口市| 繁峙县| 衡阳市| 鄯善县| 社旗县| 南木林县|