问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

怎样令webpack的构建加快十倍,DllPlugin的用法

发布网友 发布时间:2022-04-26 08:58

我来回答

1个回答

热心网友 时间:2022-04-20 16:17

安装webpack、React、react-dom
npm install --save-dev webpack
npm install --save-dev react
npm install --save-dev react-dom123123

先建立三个文件
webpack.dll.config.js 文件
const path = require('path');
const webpack = require('webpack');

mole.exports = {
entry: {
vendor: ['react', 'react-dom']
},
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].dll.js',
/**
* output.library
* window.${output.library}に定义される
* 今回の场合、`window.vendor_library`になる
*/
library: '[name]_library'
},
plugins: [
new webpack.DllPlugin({
/**
* path
* manifestファイルの出力先
* [name]の部分はentryの名前に変换される
*/
path: path.join(__dirname, 'dist', '[name]-manifest.json'),
/**
* name
* どの空间(global変数)にdll bundleがあるか
* output.libraryに指定した値を使えばよい
*/
name: '[name]_library'
})
]
};1234567891011121314151617181920212223242526272829303132333412345678910111213141516171819202122232425262728293031323334

webpack.config.js 文件
const path = require('path');
const webpack = require('webpack');

mole.exports = {
entry: {
'dll-user': ['./index.js']
},
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].bundle.js'
},
plugins: [
new webpack.DllReferencePlugin({
context: __dirname,
/**
* manifestファイルをロードして渡す
*/
manifest: require('./dist/vendor-manifest.json')
})
]
};123456789101112131415161718192021123456789101112131415161718192021

index.js 文件
var React = webpack --config webpack.dll.config.js('react');
var ReactDOM = require('react-dom');
console.log("dll's React:", React);
console.log("dll's ReactDOM:", ReactDOM);12341234

建立后文件后 执行
webpack --config webpack.dll.config.js11

将会在当前目录生成dist目录,该目录下面的文件有 vendor.dll.js、vendor-manifest.json
再执行
webpack --config webpack.config.js11

将会在当前目录生成dist目录,该目录下面当前的文件有 vendor.dll.js、vendor-manifest.json、vendor.dll.js
现在,我们创建一个测试文件
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="./dist/vendor.dll.js"></script>
</head>
<body>

<script type="text/javascript" src="./dist/dll-user.bundle.js"></script>
</body>
</html>123456789101112123456789101112

打开这个index.html文件,使用chrome按F12调试,打开console选项卡,将会看到类似
Download the React DevTools and use an HTTP server (instead of a file: URL) for a better development experience: https://fb.me/react-devtools

dll-user.bundle.js:56 dll's React: Object {Children: Object, PropTypes: Object, DOM: Object, version: "15.3.2"}

dll-user.bundle.js:57 dll's ReactDOM: Object {version: "15.3.2"}1234512345

的内容。则测试成功。
原文还提及构建时的缓存。
请转脚步到原文。
webpack.config.js文件中的下面代码是重点。
plugins: [
new webpack.DllReferencePlugin({
context: __dirname,
/**
* manifestファイルをロードして渡す
*/
manifest: require('./dist/vendor-manifest.json')
})
]123456789123456789

如果去除掉,生成速度将会慢很多倍。主要原因是打包的时候,将react、react-dom等等等等 的插件都塞到一个包里面,不慢才怪。
要是在本地开发调试的时候,没改一下bug就得等很久很久的话,那也不太划算。
webpack管理模块的确是挺方便的,不过我还就觉得不要都打包在一个js上面。
上面的例子中的dist就是生产环境引用的js了。
比如我来说,我会每个网页的引用的js都可能不同,所以我打包时也不会将所有js打包到一个上面。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
东芝2010ac请求维修cd40怎么办_东芝2010ac故障提示cd40怎么处理 xp系统找不到一键还原,怎么一键还原系统? 电脑xp系统还原windowxp怎么还原系统 ...电脑系统WindowsXP系统的电脑如何进行系统还原电脑里没有系统还原... ...系统还原WindowsXP系统的电脑如何进行系统还原电脑里没有系统还原... 奥拉星烈焰凤凰平民打法 奥拉星怎么打烈焰凤凰? 奥拉星烈焰凤凰暗之封印怎么打? 奥拉星 奥拉星烈焰凤凰怎么打? 小米11的快充蕊片在主板哪个位置 如何解决webpack使用时内存占用过大的问题 浅谈Webpack 是如何加载模块的 77事变时日军为什么会出现在北平 北平以北观后感 保卫北平,奋勇抗日的是谁? 蔚县革命根椐地在哪里 北京免费博物馆 作文参观抗日英雄图片展观后感450字 北京一共有多少个博物馆? 北京免费开放的博物馆有哪些? 北京有多少家博物馆?哪些是免费的?哪些是收费的? 北京地区首批免费开放博物馆名单哪能找到? 北京免费开放的33家博物馆的名单 今年8月24日,*公布第一批80处国家级抗战纪念设施,遗址名录,我市___入选 敦煌壁画是什么? 平北抗日战争纪念馆门票 什么是敦煌壁画中艺术成就最高、最受人们喜爱的部分,也是敦煌艺术的代表和象征。 谁绘制了敦煌壁画? 敦煌壁画艺术在我国什么地方? 敦煌壁画千年不褪色之谜 webpack可以提高代码的运行效率吗 如何判断的 webpack 打包大小是否科学,是否还有优化的可能 怎样刷牙才可以让牙齿变白 excel有什么整理数据的技巧 excel表格的35招必学秘技 怎样在工作人员表格中统计男、女的人数? 怎么使牙齿快速由黄变白,越快越好 怎样防止excel单元格中输入重复编号 《Excel图表与数据分析实战秘技250招》怎么样 Excel从1打到10000秘籍 谁有Excel数据透视表实战秘技正式课1-9期 零基础学excel秘秘笈快速合并不连续且内容相同的单元格怎么做? 谁买有《Excel 2013公式与函数辞典646秘技大全全新升级版附光盘》 《Excel函数与公式实战秘技250招》怎么样 请问制作表格有哪几种?怎么学? 您好,请问一下众创指购商城可信吗?? 想我下各位大师们加入众创指购能赚股权吗?赚到股权后以后要亲自去办 众创指购微商9.9加盟是真的吗? 众创指购是传销吗 2020众创指购能上市吗? 股权投资靠谱么?
  • 焦点

最新推荐

猜你喜欢

热门推荐