nuxt.js添加環(huán)境變量,區(qū)分項(xiàng)目打包環(huán)境操作
最近由于業(yè)務(wù)需求,開(kāi)發(fā)了一個(gè)nuxt.js項(xiàng)目。
配置打包環(huán)境變量時(shí),發(fā)現(xiàn)nuxt.js的文檔過(guò)于簡(jiǎn)單,無(wú)法做參照。
經(jīng)查證了一些資料后,解決了該問(wèn)題。遂整理成文檔,發(fā)布于此,給同行一些參照。
一、添加cross-env插件
npm
npm i cross-env
yarn
yarn add cross-env
二、添加環(huán)境變量文件
根目錄添加env.production
NODE_ENV = 'production'
VUE_APP_TITLE = 'production'
根目錄添加env.test文件
NODE_ENV = 'production'
VUE_APP_TITLE = 'test'
三、注入全局環(huán)境變量
在nuxt.confit.js中添加環(huán)境變量配置
export default {
env: {
VUE_APP_TITLE: process.env.VUE_APP_TITLE
}
}
四、修改打包命令
在package.json中修改以下命令
"scripts": {
"dev": "nuxt",
"build": "cross-env process.env.VUE_APP_TITLE=production nuxt build",
"build:test": "cross-env process.env.VUE_APP_TITLE=test nuxt build",
"start": "nuxt start",
"generate": "nuxt generate",
"test": "jest"
}
運(yùn)行 yarn build打生產(chǎn)環(huán)境包,yarn build:test打測(cè)試環(huán)境包。
補(bǔ)充知識(shí):vue項(xiàng)目分環(huán)境打包的具體步驟 --- 區(qū)分測(cè)試環(huán)境與線(xiàn)上環(huán)境的打包引用路徑
第一步: 安裝cross-env
npm install --save-dev cross-env
運(yùn)行跨平臺(tái)設(shè)置和使用環(huán)境變量的腳本
第二步:修改package.json
在package.json
里設(shè)置打包命令 --- 主要是基于使用vue-cli創(chuàng)建的項(xiàng)目,配置文件基于 NODE_ENV=production 去處理,根據(jù)盡少的改動(dòng)原有配置文件的原則,我們?cè)谶@里,NODE_ENV最好都設(shè)成production,
增加一個(gè) EVN_CONFIG 字段去區(qū)分環(huán)境
NODE_ENV=production EVN_CONFIG=dev 對(duì)應(yīng)著
process.env.EVN_CONFIG(指的就是package.json 的EVN_CONFIG) 與config/index.js 的build 環(huán)境值 有對(duì)應(yīng)關(guān)系
對(duì)package.json文件中的scripts內(nèi)容進(jìn)行個(gè)性,添加上新定義的幾種環(huán)境的打包過(guò)程,里的參數(shù)與前面的調(diào)協(xié)保持一致。
"build:dev": "cross-env NODE_ENV=production EVN_CONFIG=dev node build/build.js",
"build:test": "cross-env NODE_ENV=production EVN_CONFIG=testing node build/build.js",
"build:prod": "cross-env NODE_ENV=production EVN_CONFIG=production node build/build.js"

第三步:修改config/index.js
修改config/index.js文件中build參數(shù),這里的參數(shù)會(huì)在build/webpackage.prod.conf.js中使用到

第四步 修改build/webpackage.prod.conf.js

env ------ process.env.EVN_CONFIG 與config/index.js 的build 環(huán)境值 有對(duì)應(yīng)關(guān)系
true
testing<br><br>console.log(env) ----
{ NODE_ENV: '"production"', EVN_CONFIG: '"testing"' }

初衷是為了 -- 區(qū)分測(cè)試環(huán)境與線(xiàn)上環(huán)境的打包引用路徑

index: 模板
assetRoot: 打包后文件要存放的路徑
assetsSubDirectory: 除了 index.html 之外的靜態(tài)資源要存放的路徑,
assetsPublicPath: 代表打包后,index.html里面引用資源的的相對(duì)地址
build: {
// 添加test dev prod 三處環(huán)境的配制
production: require('./prod.env'),
dev: require('./dev.env'),
testing: require('./test.env'),
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
// assetsRoot: process.env.EVN_CONFIG === 'testing'?'../dist':'../h5',
// assetsSubDirectory: './static',
// assetsPublicPath: '/h5/',
assetsSubDirectory:process.env.EVN_CONFIG === 'testing' ? './static':'static',
assetsPublicPath:process.env.EVN_CONFIG === 'testing' ? '/h5/':'/',
以上這篇nuxt.js添加環(huán)境變量,區(qū)分項(xiàng)目打包環(huán)境操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Docker部署Nuxt.js項(xiàng)目的實(shí)現(xiàn)
- nuxt.js服務(wù)端渲染中axios和proxy代理的配置操作
- Nuxt.js nuxt-link與router-link的區(qū)別說(shuō)明
- Nuxt.js的路由跳轉(zhuǎn)操作(頁(yè)面跳轉(zhuǎn)nuxt-link)
- nuxt.js 在middleware(中間件)中實(shí)現(xiàn)路由鑒權(quán)操作
- Nuxt.js 靜態(tài)資源和打包的操作
- nuxt.js寫(xiě)項(xiàng)目時(shí)增加錯(cuò)誤提示頁(yè)面操作
- 創(chuàng)建nuxt.js項(xiàng)目流程圖解
- nuxt.js 多環(huán)境變量配置
相關(guān)文章
vue后臺(tái)系統(tǒng)管理項(xiàng)目之角色權(quán)限分配管理功能(示例詳解)
這篇文章主要介紹了vue后臺(tái)系統(tǒng)管理項(xiàng)目-角色權(quán)限分配管理功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
vue實(shí)現(xiàn)el-menu與el-tabs聯(lián)動(dòng)的項(xiàng)目實(shí)踐
本文講述了如何使用Vue.js中的ElementUI組件庫(kù)實(shí)現(xiàn)el-menu與el-tabs的聯(lián)動(dòng),通過(guò)在el-menu中選擇菜單項(xiàng),可以切換el-tabs的內(nèi)容區(qū)域,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
詳解vue移動(dòng)端項(xiàng)目的適配(以mint-ui為例)
這篇文章主要介紹了詳解vue移動(dòng)端項(xiàng)目的適配(以mint-ui為例),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
結(jié)合mint-ui移動(dòng)端下拉加載實(shí)踐方法總結(jié)
下面小編就為大家?guī)?lái)一篇結(jié)合mint-ui移動(dòng)端下拉加載實(shí)踐方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
用Vue?Demi同時(shí)支持Vue2和Vue3的方法
這篇文章主要介紹了用Vue?Demi同時(shí)支持Vue2和Vue3的方法,實(shí)際開(kāi)發(fā)中,同一個(gè)API在不同的版本中可能導(dǎo)入的來(lái)源不一樣,比如ref方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12

