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


Posted in Javascript onNovember 06, 2020

最近由于业务需求,开发了一个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"

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

第三步:修改config/index.js

修改config/index.js文件中build参数,这里的参数会在build/webpackage.prod.conf.js中使用到

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

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

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

env ------ process.env.EVN_CONFIG 与config/index.js 的build 环境值 有对应关系

true
testing<br><br>console.log(env) ----
{ NODE_ENV: '"production"', EVN_CONFIG: '"testing"' }

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

初衷是为了 -- 区分测试环境与线上环境的打包引用路径

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

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添加环境变量,区分项目打包环境操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
JS request函数 用来获取url参数
May 17 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
如何防止JavaScript自动插入分号
Nov 05 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
BootStrap实现手机端轮播图左右滑动事件
Oct 13 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
使用Vue实现一个树组件的示例
Nov 06 #Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 #Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 #Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 #Javascript
vue created钩子函数与mounted钩子函数的用法区别
Nov 05 #Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
Nov 05 #Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 #Javascript
You might like
PHP - Html Transfer Code
2006/10/09 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
PHPThumb图片处理实例
2014/05/03 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
Django models filter筛选条件详解
2020/03/16 Python
python with语句的原理与用法详解
2020/03/30 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python安装后的目录在哪里
2020/06/21 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
override和overload的区别
2016/03/09 面试题
年度考核自我鉴定
2013/11/09 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
师德师风事迹材料
2014/12/20 职场文书
大学生毕业评语
2014/12/31 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android
Python如何加载模型并查看网络
2022/07/15 Python