nuxt.js添加環(huán)境變量,區(qū)分項目打包環(huán)境操作
最近由于業(yè)務(wù)需求,開發(fā)了一個nuxt.js項目。
配置打包環(huán)境變量時,發(fā)現(xiàn)nuxt.js的文檔過于簡單,無法做參照。
經(jīng)查證了一些資料后,解決了該問題。遂整理成文檔,發(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"
}
運行 yarn build打生產(chǎn)環(huán)境包,yarn build:test打測試環(huán)境包。
補充知識:vue項目分環(huán)境打包的具體步驟 --- 區(qū)分測試環(huán)境與線上環(huán)境的打包引用路徑
第一步: 安裝cross-env
npm install --save-dev cross-env
運行跨平臺設(shè)置和使用環(huán)境變量的腳本
第二步:修改package.json
在package.json
里設(shè)置打包命令 --- 主要是基于使用vue-cli創(chuàng)建的項目,配置文件基于 NODE_ENV=production 去處理,根據(jù)盡少的改動原有配置文件的原則,我們在這里,NODE_ENV最好都設(shè)成production,
增加一個 EVN_CONFIG 字段去區(qū)分環(huán)境
NODE_ENV=production EVN_CONFIG=dev 對應(yīng)著
process.env.EVN_CONFIG(指的就是package.json 的EVN_CONFIG) 與config/index.js 的build 環(huán)境值 有對應(yīng)關(guān)系
對package.json文件中的scripts內(nèi)容進行個性,添加上新定義的幾種環(huán)境的打包過程,里的參數(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ù)會在build/webpackage.prod.conf.js中使用到

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

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

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

index: 模板
assetRoot: 打包后文件要存放的路徑
assetsSubDirectory: 除了 index.html 之外的靜態(tài)資源要存放的路徑,
assetsPublicPath: 代表打包后,index.html里面引用資源的的相對地址
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ū)分項目打包環(huán)境操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
antd Select下拉菜單動態(tài)添加option里的內(nèi)容操作
這篇文章主要介紹了antd Select下拉菜單動態(tài)添加option里的內(nèi)容操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Vue使用Echarts實現(xiàn)大屏可視化布局示例詳細講解
這篇文章主要介紹了Vue使用Echarts實現(xiàn)大屏可視化布局示例,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01

