首页 > 其他分享 >Webpack提取页面公共资源

Webpack提取页面公共资源

时间:2023-02-09 12:00:51浏览次数:40  
标签:插件 公共资源 分离 exports module react Webpack 引入 页面


1. 利用html-webpack-externals-plugin 分离基础库

在做React开发时,经常需要引入react和react-dom基础库,这样在打包的时候速度就会比较慢,这种情况下我们可以将这些基础库忽略掉,将它们通过CDN的方式直接引入,而不打包到bundle文件里面去。

1. 安装插件

npm i html-webpack-externals-plugin -D

2. 引入插件

const HtmlWebpackExternalsPlugin = require('html-webpack-externals-plugin');

3. 使用插件

在 webpack 中配置如下:

module.exports = {

// 其它配置项此处略

plugins: [
new HtmlWebpackExternalsPlugin({
externals: [
{
module: 'react',
entry: 'https://11.url.cn/now/lib/16.2.0/react.min.js',
global: 'React',
},
{
module: 'react-dom',
entry: 'https://11.url.cn/now/lib/16.2.0/react-dom.min.js',
global: 'ReactDOM',
},
]
}),

]
};

在根页面 index.html 文件中引入基础库:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>分离基础库</title>
</head>
<body>

<div id="root"></div>

<!-- 引入基础库 -->
<script type="text/javascript" src="https://11.url.cn/now/lib/16.2.0/react.min.js"></script>
<script type="text/javascript" src="https://11.url.cn/now/lib/16.2.0/react-dom.min.js"></script>

</body>
</html>

2. 利用SplitChunksPlugin 分离基础库

此插件是Wabpack4内置的,无需安装,用于替代CommonsChunkPlugin插件。

module.exports = {
optimization: {
splitChunks: {
cacheGroups: {
commons: {
// 匹配出需要分离的包
test: /(react|react-dom)/,
name: 'vendors',
chunks: 'all'
}
}
}
}
};

分离出来的文件名前辍为vendors,也要进行配置。

Webpack提取页面公共资源_文件名

3. 利用SplitChunksPlugin 分离依赖包

此插件是Wabpack4内置的,无需安装,用于替代CommonsChunkPlugin插件。

module.exports = {
optimization: {
splitChunks: {
// 同步还是异步
chunks: 'async',
// 抽离公共包最小的大小(KB)
minSize: 30000,
// 抽离公共包最大的大小(KB)
maxSize: 0,
// 方法最小使用次数
minChunks: 1,
// 浏览器每次请求异步资源的次数
maxAsyncRequests: 5,
maxInitialRequests: 3,
automaticNameDelimiter: '~',
name: true,
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
priority: -10
}
}
}
}
};

chunks 参数说明:

1. async 异步引入的库进行分离(默认);

2. initial  同步引入的库进行分离 ;

3. all 所有引入的库进进分离(推荐);

4. 利用SplitChunksPlugin 分离页面公共文件

此插件是Wabpack4内置的,无需安装,用于替代CommonsChunkPlugin插件。

module.exports = {
optimization: {
splitChunks: {
// 分离的包体积的⼤⼩
minSize: 0,
cacheGroups: {
commons: {
name: 'commons',
chunks: 'all',
// 最⼩引⽤次数为2次
minChunks: 2
}
}
}
}
};

分离出来的文件名前辍为commons,也要进行配置。

Webpack提取页面公共资源_javascript_02

标签:插件,公共资源,分离,exports,module,react,Webpack,引入,页面
From: https://blog.51cto.com/u_15959833/6046628

相关文章

  • Webpack自动清理打包目录
    Webpack在打包的时候,会在指定输出文件夹下面生成打包文件,但是上次打包的文件不会自动清理掉,每次手动删除会比较麻烦,为此,我们需要有一个自动清理的功能。常见的自动清理方式......
  • activity向上/向下一个页面发送数据
    向下一个活动发送数据一般使用bundle(捆)使用方法创建并准备发送数据//这里是上一个页面Intentintent=newIntent(this,class);//新建意图Bundlebundle=ne......
  • 前端页面分页算法 js+php
    实现效果: 实现思路:通过当前选中页码数值和总页码数量,计算返回结果,以数组的形式返回。遍历数组内容,完成页面渲染。 php算法:/***getNavigatePage**@......
  • js实现页面窗口录制
    一、在线demo1、在线demo地址:http://www.lb0125.com/videoRecord.html 注:目前测试发现只有在chrome浏览器里可以使用二、直接上代码<!DOCTYPEhtml><html><head>......
  • 关于webpack 开启代理proxy后,接口看不到代理地址的问题。
    今天在项目中发现,  明明在proxy里代理了 接口地址确不是10.10.11.106/front/xxxxxx。这是为啥呢?changeOrigin的修改也是一样,在网络请求中发现host还是没改。这又......
  • [jQuery]判断页面是否滚动到底部
     $(this).scroll(function(){varviewHeight=document.body.clientHeight;//可见高度varcontentHeight=$(".container").get(0).scrollH......
  • webpack
    webpack4webpack是一个用于现代JavaScript应用程序的静态模块打包工具。当webpack处理应用程序时,它会在内部构建一个依赖图,此依赖图对应映射到项目所需的每个模块......
  • 小程序高级电商前端第3周电商系统分类页面客服商品详情页面开发<三>----为你推荐实现
    为你推荐实现:概述:接着https://www.cnblogs.com/webor2006/p/16645627.html继续往下学习,对于整个首页的功能,还差最后一个木有实现:而这块也是最麻烦的,推荐的商品是需要分......
  • vue返回离开页面提示
    vue有一个beforeRouteLeave函数,跟生命周期同级data(){return{}},beforeRouteLeave(to,from,next){setTimeout(()=>{//可自己制作确认框,自定义......
  • shiro-从数据库中获取授权信息与显示菜单在页面上(注解版和jsp标签)
    修改realm的doGetAuthorizationInfo,从数据库查询权限信息。使用注解式授权方法。使用jsp标签授权方法。1.修改doGetAuthorizationInfo从数据库查询......