nuxt.js添加环境变量,区分项目打包环境操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

nuxt.js添加环境变量,区分项⽬打包环境操作
最近由于业务需求,开发了⼀个nuxt.js项⽬。

配置打包环境变量时,发现nuxt.js的⽂档过于简单,⽆法做参照。

经查证了⼀些资料后,解决了该问题。

遂整理成⽂档,发布于此,给同⾏⼀些参照。

⼀、添加cross-env插件
npm
npm i cross-env
yarn
yarn add cross-env
⼆、添加环境变量⽂件
根⽬录添加env.production
NODE_ENV = 'production'
VUE_APP_TITLE = 'production'
根⽬录添加env.test⽂件
NODE_ENV = 'production'
VUE_APP_TITLE = 'test'
三、注⼊全局环境变量
在nuxt.confit.js中添加环境变量配置
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打⽣产环境包,yarn build:test打测试环境包。

补充知识:vue项⽬分环境打包的具体步骤 --- 区分测试环境与线上环境的打包引⽤路径
第⼀步:安装cross-env
npm install --save-dev cross-env
运⾏跨平台设置和使⽤环境变量的脚本
第⼆步:修改package.json
在package.json
⾥设置打包命令 --- 主要是基于使⽤vue-cli创建的项⽬,配置⽂件基于 NODE_ENV=production 去处理,根据尽少的改动原有
配置⽂件的原则,我们在这⾥,NODE_ENV最好都设成production,
增加⼀个 EVN_CONFIG 字段去区分环境
NODE_ENV=production EVN_CONFIG=dev 对应着
process.env.EVN_CONFIG(指的就是package.json 的EVN_CONFIG)与config/index.js 的build 环境值有对应关系
对package.json⽂件中的scripts内容进⾏个性,添加上新定义的⼏种环境的打包过程,⾥的参数与前⾯的调协保持⼀致。

"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参数,这⾥的参数会在build/webpackage.prod.conf.js中使⽤到
第四步修改build/webpackage.prod.conf.js
env ------ process.env.EVN_CONFIG 与config/index.js 的build 环境值有对应关系
true
testing<br><br>console.log(env) ----
{ NODE_ENV: '"production"', EVN_CONFIG: '"testing"' }
初衷是为了 -- 区分测试环境与线上环境的打包引⽤路径
index: 模板
assetRoot: 打包后⽂件要存放的路径
assetsSubDirectory: 除了 index.html 之外的静态资源要存放的路径,
assetsPublicPath: 代表打包后,index.html⾥⾯引⽤资源的的相对地址
build: {
// 添加test dev prod 三处环境的配制
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添加环境变量,区分项⽬打包环境操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

相关文档
最新文档