.env是作為項(xiàng)目的環(huán)境變量的存放文件,用于在不同環(huán)境下加載不同的配置隐砸。
官方文檔:
例如:?
其中:
1.? .env 文件是無(wú)論在那個(gè)環(huán)境都是會(huì)運(yùn)行的扳炬,在變量沖突的情況下特定環(huán)境變量文件會(huì)覆蓋掉.env文件吏颖。
2.這里的test,prod恨樟,dev都是自定義名字侦高,但是,注意:這幾個(gè)自定義名字的文件中必須要有? NODE_ENV 這個(gè)變量模式(NODE_ENV用于設(shè)置vue cli的運(yùn)行模式)分為三種模式:development? 厌杜,?test? 奉呛,?production ;三種不同的模式?jīng)Q定了創(chuàng)建哪種webpack 配置夯尽。
? ? 官方文檔:
NODE_ENV?將決定您的應(yīng)用運(yùn)行的模式瞧壮,是開(kāi)發(fā),生產(chǎn)還是測(cè)試匙握,因此也決定了創(chuàng)建哪種 webpack 配置咆槽。例如通過(guò)將?NODE_ENV?設(shè)置為?"test",Vue CLI 會(huì)創(chuàng)建一個(gè)優(yōu)化過(guò)后的圈纺,并且旨在用于單元測(cè)試的 webpack 配置秦忿,它并不會(huì)處理圖片以及一些對(duì)單元測(cè)試非必需的其他資源。同理蛾娶,NODE_ENV=development?創(chuàng)建一個(gè) webpack 配置灯谣,該配置啟用熱更新,不會(huì)對(duì)資源進(jìn)行 hash 也不會(huì)打出 vendor bundles蛔琅,目的是為了在開(kāi)發(fā)的時(shí)候能夠快速重新構(gòu)建胎许。當(dāng)你運(yùn)行?vue-cli-service build?命令時(shí),無(wú)論你要部署到哪個(gè)環(huán)境罗售,應(yīng)該始終把?NODE_ENV?設(shè)置為?"production"?來(lái)獲取可用于部署的應(yīng)用程序辜窑。
總結(jié):無(wú)論你要部署到哪個(gè)環(huán)境,應(yīng)該始終把?NODE_ENV?設(shè)置為?"production"?來(lái)獲取可用于部署的應(yīng)用程序寨躁。
3.在模板中使用環(huán)境變量
?let apiINFO = import.meta.env.VITE_BASE_URL
以上環(huán)境變量文件創(chuàng)建完成后穆碎,需要在package.json中進(jìn)行相應(yīng)的啟動(dòng)命令配置。
如:
其中:
1.? vue-tsc ?--noEmit 用于ts文件檢查 是必須每個(gè)組件都要符合 ts 的語(yǔ)法职恳,否則在打包的時(shí)候就會(huì)報(bào)錯(cuò)所禀;如果報(bào)錯(cuò)直接去掉這個(gè)就行方面。
2.運(yùn)行命令 npm run dev或者 npm run test 或者 npm run prod
3.打包命令 npm run build:test 或者 npm run build:prod 或者?npm run build:dev