当前位置: 首页 > news >正文

vue项目打包,使用externals抽离公共的第三方库

封装了一个插件,用来vue打包抽离公共的第三方库,使用unplugin进行插件开发,vite对应的功能使用了vite-plugin-externals进行二次开发

github地址
npm地址

hfex-auto-externals-plugin

自动注入插件,使用 unplugin 和 html-webpack-plugin进行封装

html-webpack-plugin从4.0版本开始引入了getHooks方法,因此项目中使用的html-webpack-plugin版本必须至少为4.0

目前支持:

  • Webpack
  • Vite

install

npm install hfex-auto-externals-plugin -Dornpx pnpm install hfex-auto-externals-plugin -Dornpx yarn add hfex-auto-externals-plugin -D

usage

在Vue项目中使用:

我的项目中使用的vue版本是3.3.0

我的项目中使用的vue-router版本是4.1.3

您可以在本网站上搜索有关相应NPM的信息 unpkg

Vue in Webpack
// vue.config.js
const HfexAutoExternalsPlugin = require('hfex-auto-externals-plugin')
const externalsConfig = [{name:'vue',exposedField:'Vue',packageLink:'https://unpkg.com/vue@3.3.0/dist/vue.runtime.global.prod.js'},{name:'vue-router',exposedField:'VueRouter',packageLink:'https://unpkg.com/vue-router@4.1.3/dist/vue-router.global.prod.js'}
]module.exports = {configureWebpack:{plugins:[HfexAutoExternalsPlugin({externalsConfig:externalsConfig})]}
}

effect

项目打包

npm run build

未使用 hfex-auto-externals-plugin

该项目的包装体积效果图如下

before build bundle

使用 hfex-auto-externals-plugin

该项目的包装体积效果图如下

after build bundle

after build net

after build sourse

显然,打包项目的体积已经大幅下降

Vue in vite
// vite.config.ts
import { defineConfig } from 'vite'import HfexAutoExternalsPlugin from 'hfex-auto-externals-plugin/vite'
const externalsConfig = [{name:'vue',exposedField:'Vue',packageLink:'https://unpkg.com/vue@3.3.0/dist/vue.runtime.global.prod.js'},{name:'vue-router',exposedField:'VueRouter',packageLink:'https://unpkg.com/vue-router@4.1.3/dist/vue-router.global.prod.js'}
]export default defineConfig({plugins:[HfexAutoExternalsPlugin({externalsConfig:externalsConfig})]
})

ts issue

ts issue

可以使用//@ ts ignore 忽略

ts issue

effect

build your project

npm run build

未使用 before use hfex-auto-externals-plugin

该项目的包装体积效果图如下

before build bundle

使用 after use hfex-auto-externals-plugin

该项目的包装体积效果图如下

after build bundle

after build net

after build sourse

显然,打包项目的体积已经大幅下降

parameter

PropTypeDefaultdescriptionrequired
externalsConfigArray<{name:string;exposedField:string;packageLink:string}>[]externalsConfigtrue
http://www.lryc.cn/news/196542.html

相关文章:

  • 九阳真经之各大厂校招
  • Go语言入门心法(五): 函数
  • gitignore文件的语法规则
  • vscode提示扩展主机在过去5分钟内意外终止了3次,解决方法
  • 【算法挨揍日记】day16——525. 连续数组、1314. 矩阵区域和
  • k8s-13 存储之secret
  • 什么是高阶成分(HOC)
  • 深度学习硬件配置推荐
  • 数仓建设(一)
  • Springboot整合taos时序数据库TDengine
  • Epoch、批量大小、迭代次数
  • qt-C++笔记之清空QVBoxLayout中的QCheckBox
  • pc微信39223部分算法call偏移
  • 尚硅谷Flink(三)时间、窗口
  • MPLS基础
  • react+antd+Table实现表格初始化勾选某条数据,分页切换保留上一页勾选的数据
  • Linux shell编程学习笔记13:文件测试运算
  • element ui this.$msgbox 自定义组件
  • 尚硅谷Flink(四)处理函数
  • AXURE RP EXTENSION For Chrome 安装
  • 24、Flink 的table api与sql之Catalogs(java api操作视图)-3
  • 【CNN-GRU预测】基于卷积神经网络-门控循环单元的单维时间序列预测研究(Matlab代码实现)
  • 计算机毕业设计--基于SSM+Vue的物流管理系统的设计与实现
  • GPT4 Plugins 插件 WebPilot 生成抖音文案
  • 通过核密度分析工具建模,基于arcgis js api 4.27 加载gp服务
  • 【vue2高德地图api】02-npm引入插件,在页面中展示效果
  • ai智能语音电销机器人怎么选?
  • NumPy基础及取值操作
  • vue webpack/vite的区别
  • 多线程下的单例设计模式(新手必看!!!)