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 相关文章推荐
javascript编程起步(第三课)
Feb 27 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 Javascript
jQuery拖拽div实现思路
Feb 19 Javascript
JS实现图片平面旋转的方法
Mar 01 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
Vue实现简单分页器
Dec 29 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 Javascript
详解ES6中class的实现原理
Oct 03 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
使用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随机取mysql记录方法小结
2014/12/27 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Python实现SMTP邮件发送
2020/06/16 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
开业庆典邀请函
2014/01/08 职场文书
办公室主任职责范本
2014/03/07 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
节约用水的口号
2014/06/20 职场文书
男性健康日的活动方案
2014/08/18 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
水知道答案观后感
2015/06/08 职场文书
在职证明书模板
2015/06/15 职场文书
回复函格式及范文
2015/07/14 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python