vue技巧(十)全局配置使用(打包后可修改配置文件)

news2024/11/25 2:40:13

1、背景        

        vue打包目前主流用的有webpack和vite两种,默认用的webpack。(二者的区别大家可以各自上网查,我没用过vite,所以不过多介绍)vue通过webpack打包后,源码会被压缩,但一些关键配置可能需要根据运行环境的变化而手动修改。本篇文章则主要介绍如何让配置文件在打包后保持不变,进而支持后期手动修改配置文件中的参数。

2、实现方法

方法一:配置文件放置到public目录下(最简单、推荐使用)
webpack打包时会整个复制public里面的文件,因此放置在其中的配置文件不会受到任何影响。

配置使用方法:

方法二:基于generate-asset-webpack-plugin插件

首先安装插件:

npm install --save-dev generate-asset-webpack-plugin

其次在vue配置文件中声明打包时重新生成指定的配置文件,配置如下:

const GenerateAssetPlugin = require('generate-asset-webpack-plugin')
const globalConfig = require('./src/static/globalConfig.json')
module.exports={
    configureWebpack:{
        performance: {
            hints: false
          },
        plugins: [
            new GenerateAssetPlugin({
              filename: 'globalConfig.json',
              fn: (compilation, cb) => {
                cb(null, JSON.stringify(globalConfig))
              },
              extraFiles: []
            })
        ]
     }
}

注意:这里其实是重新生成一个配置文件,所以使用的是json类型的配置文件。另外我用的webpack版本太高,跟插件不匹配,编译时报错:编译报错compiler.plugin is not a function。解决方式是修改插件源码,修改过程可参考该文章(新安webpack插件后编译报错compiler.plugin is not a function-CSDN博客)。打包后目录如下:

在代码中使用该配置文件的方法与使用js类型配置文件类似,如下所示:

总结:

1)方式一展示了js格式配置的使用方式,方式二展示了json格式配置的使用方式。

2)配置文件一般有.js或.json两种,方式一使用js或者json配置都可以,方式二则推荐用json,因为方式二如果使用js的话,上面的拷贝代码会报错。

3)webpack版本太高与插件不兼容,编译报错compiler.plugin is not a function,可以通过修改源码解决,解决方式参考该文章:新安webpack插件后编译报错compiler.plugin is not a function-CSDN博客

4)还有一种常见的配置使用思路,就是提前创建好多个配置文件,然后根据不同的运行环境让框架自动选择某一个配置文件使用。但这种方法使用的前提是所有环境和配置是已知的才行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1819033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv10在RK3588上的测试(进行中...)

1.代码源 国内镜像站在gitcode。这个镜像站也基本上包含了github上常用项目的镜像。然后它的主发布源在这里: GitCode - 全球开发者的开源社区,开源代码托管平台 yolov10是清华主导做的... 然后,在维护列表里看到了这个: 2024年05月31日&am…

前端项目打包部署

打包 vue-cli脚手架的前端项目,点击npm脚本中的第二条编译命令,即可将项目编译,生成一个dist的文件夹,里面存放的就是编译好的前端项目文件,没有脚手架就在终端敲击npm run build命令编译前端项目 部署 Nginx 介绍:…

centos7 最简单方式安装xfce 4桌面环境

本快速指南将介绍如何在CentOS 7上安装Xfce桌面,该桌面将提供用于Linux系统的GUI。 Xfce是一个用于Unix之类的轻量级桌面环境,类似于操作系统,其目标是快速而又节省系统资源。 首先,我们需要配置EPEL存储库,因为这是…

Calibre版图验证工具调用_笔记

Siemens EDA Calibre版图验证工具调用 采用Cadence Virtuoso Layout Editor直接调用Siemens EDA Calibre工具需要进行文件设置, 在用户的根目录下,找到.cdsinit文件, 在文件的结尾处添加以下语句即可,其中,calibre.skl…

Kafka多维度调优

优化金字塔 应用程序层面 框架层面(Broker层面) JVM层面 操作系统层面 应用程序层面:应当优化业务代码合理使用kafka,合理规划主题,合理规划分区,合理设计数据结构; 框架层面:在不…

全面了解性格测试:探索你的内在世界

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 全面了解性格测试:探索你的内在世界 什么是性格测试? 定义和概念 🧠 …

2006-2024年款别克君越维修手册和电路图资料更新

经过整理,2006-2024年款别克君越(含君越混动版)全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针…

Oracle 打开钱包 ORA-28368: cannot auto-create wallet

ORA-28368: cannot auto-create wallet 开启钱包抱错,看下钱包信息 SQL> select * from v$encryption_wallet;WRL_TYPE -------------------- WRL_PARAMETER -------------------------------------------------------------------------------- STATUS ------…

直播录制怎么录?(3个方法)

在数字化快速发展的今天,直播已经成为了一种重要的传播方式,无论是商业活动、教育培训,还是娱乐休闲,直播都展现出了其独特的价值。然而,直播的即时性也意味着一旦错过,就很难再次体验。这时,直…

RTSP/Onvif安防视频监控系统EasyNVR录像播放时间轴与设备时间对应不上的原因

视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。平台可提供视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xf…

雷卯推出小封装高压防静电二极管SD60C

1. 高电压通讯信号线静电防护的为何有难度 高电压通讯信号线静电防护很多公司普遍可以做到1.8至36V,48V ESD静电防护,比如上海雷卯的36V ESD二极管SD36C,LC36CI,GBLC36C ,分别可以用于低数据速率到高数据速率静电防护。48V 的ESD二极管有SD4…

代码随想录算法训练营第二十二天| 235. 二叉搜索树的最近公共祖先、 701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 文档讲解:代码随想录 状态:只会昨天的方法,没有想到利用二叉搜索树的性质。 思路: 如果当前节点的值同时小于 p 和 q 的值,说明 p …

从报名到领证:软考初级【信息系统运行管理员】报名考试全攻略

本文共计9991字,预计阅读33分钟。包括七个篇章:报名、准考证打印、备考、考试、成绩查询、证书领取及常见问题。 一、报名篇 报名条件要求: 1.凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术…

USB设备编程

文章目录 问题1、为什么一接入 USB 设备, PC 机就能发现它?image.pngUSB 设备刚接入 PC 时,还没有编号;那么 PC 怎么把"分配的编号"告诉它?硬件框架2、软件框架usb发信号usb信号位填充反向不归零编码 发送/接…

毕业年薪20w起!25届最近5年南京信息工程大学自动化考研院校分析

南京信息工程大学 目录 一、学校学院专业简介 二、考试科目指定教材 三、近4年考研分数情况 四、近4年招生录取情况 五、最新一年分数段图表 六、历年真题PDF 七、初试大纲复试大纲 八、学费&奖学金&就业方向 一、学校学院专业简介 二、考试科目指定教材 1、…

设置systemctl start kibana重启kibana

1、编辑kibana.service vi /etc/systemd/system/kibana.service [Unit] DescriptionKibana Server Manager [Service] Typesimple Useres ExecStart/home/es/kibana-7.10.2-linux-x86_64/bin/kibana PrivateTmptrue [Install] WantedBymulti-user.target 2、启动kibana # 刷…

13大最佳工程项目管理系统软件盘点

国内外主流的13款工程项目管理系统软件:Worktile、中建软件、泛微建筑项目管理软件、LiquidPlanner、Wrike、建文软件、广联达、Microsoft Project、泛普软件、Procore、Buildertrend、Fieldwire、Autodesk Construction Cloud。 在快速变化的工程领域,有…

ssh实验室设备管理系统

ssh实验室设备管理系统 实验室设备管理系统 管理员:通知管理、预约 借用模块、设备信息 维修模块等 教师和学生:预约实验室模块 技术: java ssh spring mysql 环境:idea java1.8 mysql5.7 源码➕数据库文件➕文档

Java云HIS医院管理系统源码 B/S架构 一体化电子病历系统源码 基于云端SaaS平台源码,采用B/S(Browser/Server)架构

“云”指系统采用云计算的技术和建设模式,具有可扩展、易共享、区域化、易协同、低成本、易维护、体验好的优势。“H”是医疗卫生,由原来医院 (Hospital)到现在的医疗卫生 (Healthcare),拓展了 H的内涵与外延。云 HIS 重新定义了医院信息系统…

表 达式树

》》》可以借助 LINQPad工具 using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using System.Transactions;namespace EFDemo {public cla…