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 相关文章推荐
JSQL 批量图片切换的实现代码
May 05 Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
js文本框走动跑马灯效果代码分享
Aug 25 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
微信小程序页面调用自定义组件内的事件详解
Sep 12 Javascript
JavaScript如何判断input数据类型
Feb 06 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
中国的第一台收音机
2021/03/01 无线电
编写PHP的安全策略
2006/10/09 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
php session的锁和并发
2016/01/22 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
python的即时标记项目练习笔记
2014/09/18 Python
Python实现高效求解素数代码实例
2015/06/30 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
护理专科自荐书范文
2014/02/18 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
篮球比赛策划方案
2014/06/05 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
2014年信用社工作总结
2014/11/25 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS