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 iframe内部出滚动条
Feb 11 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
Jun 16 Javascript
浅谈Vue内置component组件的应用场景
Mar 27 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
Apr 19 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 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中的加密功能
2006/10/09 PHP
laravel学习教程之关联模型
2016/07/30 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
Python3使用requests发闪存的方法
2016/05/11 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python中django学习心得
2017/12/06 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
Python爬虫开发与项目实战
2020/12/16 Python
化工工艺专业求职信
2013/09/22 职场文书
养殖项目策划书范文
2014/01/13 职场文书
教师现实表现材料
2014/02/14 职场文书
环保倡议书格式范文
2014/05/14 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
社会公德演讲稿
2014/05/20 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
升职自荐信范文
2015/03/27 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android