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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
web网页按比例显示图片实现原理及js代码
Aug 09 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 08 Javascript
原生实现一个react-redux的代码示例
Jun 08 Javascript
vue绑定事件后获取绑定事件中的this方法
Sep 15 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
使用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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP的explode和implode的使用说明
2011/07/17 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
Python中的True,False条件判断实例分析
2015/01/12 Python
python创建关联数组(字典)的方法
2015/05/04 Python
Python解析最简单的验证码
2016/01/07 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
python属于跨平台语言码
2020/06/09 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
高等教育学专业自荐书
2014/06/17 职场文书
垃圾桶标语
2014/06/24 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
小学教学工作总结2015
2015/05/13 职场文书
golang内置函数len的小技巧
2021/07/25 Golang