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 相关文章推荐
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
基于jQuery实现的无刷新表格分页实例
Feb 17 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
javascript js 操作数组 增删改查的简单实现
Jun 20 Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 Javascript
vue resource post请求时遇到的坑
Oct 19 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 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 生成饼图 三维饼图
2009/09/28 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Vue组件开发初探
2017/02/14 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
Python爬取国外天气预报网站的方法
2015/07/10 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python多线程获取返回值代码实例
2020/02/17 Python
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
校园招聘策划书
2014/01/09 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
装修活动策划方案
2014/08/27 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
惊天动地观后感
2015/06/10 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
《西门豹》教学反思
2016/02/23 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server