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 相关文章推荐
jquery判断浏览器类型的代码
Nov 05 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 Javascript
常用的javascript设计模式
Jan 11 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
uploader秒传图片到服务器完整代码
Apr 22 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 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中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
Vue响应式原理详解
2017/04/18 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Python 字符串换行的多种方式
2018/09/06 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
关于python中的xpath解析定位
2020/03/06 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
四种会话跟踪技术
2015/05/20 面试题
煤矿班组长岗位职责
2013/12/29 职场文书
公司副总经理任命书
2014/06/05 职场文书
单位实习鉴定评语
2015/01/04 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫
Python OpenCV形态学运算示例详解
2022/04/07 Python