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

大连专业手机自适应网站建设维护王通seo赚钱培训

大连专业手机自适应网站建设维护,王通seo赚钱培训,学生党适合开什么网店,企业网站推广服务DLL,动态链接库(Dynamic Link Library 或者 Dynamic-link Library),由微软公司提出。目的是为了节约应用程序所需的磁盘和内存空间。 在一个传统的非共享库中,如果两个程序调用同一个子程序,就会出现两份那…

DLL,动态链接库(Dynamic Link Library 或者 Dynamic-link Library),由微软公司提出。目的是为了节约应用程序所需的磁盘和内存空间。

在一个传统的非共享库中,如果两个程序调用同一个子程序,就会出现两份那段代码。让多个应用共享的代码切分到一个DLL中,在硬盘上存为一个文件,在内存中使用一个实例(instance)。

DllPluginDllReferencePlugin 用某种方法实现了拆分 bundles,同时还大幅度提升了构建的速度。

  1. 把公共代码打包为 DLL 文件存到硬盘里;
  2. 第二次打包时动态链接 DLL 文件,不重新打包;
  3. 打包时间缩短。

使用场景

在使用 webpack 开发过程中,对于大量第三方包(如vue、vue-router、axios等),并不是经常发生变化。每次编译时都重新构建这些资源,浪费了大量的时间。借助 DLL 思路,webpack 中引入了 DllPluginDllReferencePlugin ,允许拆分指定的第三方包、并创建单独的包,生成 manifest.json 二次构建跳过这部分编译,并教 Webpack 将它们引用到该包。以此提高整体构建速度。

第一步:指定需要拆分的包,形成 DLL 库 – DllPlugin
第二步:告知webpack,命中 DLL 库文件 – DllReferencePlugin

Without DllPluginWith DllPlugin
Build Time16461ms - 17310ms2991ms - 3505ms
DevServer Rebuild2924ms - 2997ms316ms - 369ms

– 引自 autodll-webpack-plugin

DllPlugin

此插件用于在单独的 webpack 配置中创建一个 dll-only-bundle。 此插件会生成一个名为 manifest.json 的文件,这个文件是用于让 DllReferencePlugin 能够映射到相应的依赖上。生成 manifest.json(实则就是一张映射表)。

{entry: {vendor: ['axios', 'vue', 'vue-router', 'vuex']},output: {path: './public/dll',filename: '[name].js',// vendor.dll.js中暴露出全局变量名// 保持与webpack.DllPlugin中name一致library: '[name]_[hash]',publicPath: '/dll/'},plugins: [// manifest.json描述动态链接库包含了哪些内容new webpack.DllPlugin({path: path.resolve('./public/dll', '[name]-manifest.json'),// 保持与output.library中名称一致name: '[name]_[hash]',context: process.cwd()})]
}

在这里插入图片描述

生成的 manifest.json 文件中,包含了从 require 和 import 中 请求到模块 id 的映射。

{"./node_modules/.pnpm/axios@0.18.1/node_modules/axios/index.js": {"id": "./node_modules/.pnpm/axios@0.18.1/node_modules/axios/index.js","buildMeta": {"providedExports": true}}
}

DllReferencePlugin

此插件配置在 webpack 的主配置文件中,此插件会把 dll-only-bundles 引用到需要的预编译的依赖中。

通过引用 dll 的 manifest 文件来把依赖的名称映射到模块的 id 上,之后再在需要的时候通过内置的 __webpack_require__ 函数来 require 对应的模块

{plugins: [new webpack.DllReferencePlugin({context: process.cwd(),manifest: path.resolve('./public/dll', 'vendor-manifest.json')}),new AddAssetHtmlPlugin([{filepath: path.resolve('./public/dll', 'vendor.js'),typeOfAsset: 'js',publicPath: '/dll/'},{filepath: path.resolve('./public/dll', 'vendor.css'),typeOfAsset: 'css',publicPath: '/dll/'}]),]
}

在这里插入图片描述

遗留问题

通过上述配置构建速度得了提升,但其配置比较复杂。同时,会存在一些问题:

  1. 变更了包(新增、删除、版本),需要手动重新构建,生成 DLL
  2. Dev Server 模式下,资源都被加载到内存中,DLL 方式依然会从文件系统中读取

AutoDllPlugin

AutoDllPlugin 插件完美解决了上述问题,隐藏了大量配置的复杂性。

当第一次构建包时,AutoDllPlugin 会编译 DLL,并将包中的所有指定模块引用到 DLL;下次编译代码时,AutoDllPlugin 将跳过构建并改为从缓存中读取。每次更改插件配置、安装或删除节点模块时,AutoDllPlugin 都会重建 DLL。当使用 Webpack 的 Dev Server 时,bundle 被加载到内存中以防止从文件系统中进行不必要的读取。

plugins: [new HtmlWebpackPlugin({inject: true, // 将 main bundle 注入到 index.htmltemplate: './public/index.html',}),new AutoDllPlugin({inject: true, // 将 DLL bundle 注入到 index.htmlfilename: '[name]_[hash].js',path: '/dll',entry: {vendor: ['axios', 'vue', 'vue-router', 'vuex']}})
]

AutoDllPlugin 有被 vue-cli 使用,所以可放心使用。

但在 vue-cli 引入 webpack4 之后,移除了该包,“因为 Webpack 4 的打包性能足够好的,dll 没有在 Vue ClI 里继续维护的必要了。”

dll option will be removed. Webpack 4 should provide good enough perf and the cost of maintaining DLL mode inside Vue CLI is no longer justified. – https://github.com/vuejs/vue-cli/issues/1205

HardSourceWebpackPlugin

AutoDllPlugin 其 github 仓库中,给出了重要提示。
在这里插入图片描述
HardSourceWebpackPlugin 为模块提供中间缓存步骤。
Webpack5 中已对该部分进行了官方实现。

总结

按照上面的描述,我们应该摒弃 webpack dll 吗?
不然,webpack dll 除了提升构建速度,它还允许在不同项目之间共享代码(初衷)。


文章转载自:
http://ocellation.rzgp.cn
http://nonteaching.rzgp.cn
http://middleweight.rzgp.cn
http://gourmand.rzgp.cn
http://sycamore.rzgp.cn
http://greasiness.rzgp.cn
http://ebullition.rzgp.cn
http://huckster.rzgp.cn
http://judd.rzgp.cn
http://unsalable.rzgp.cn
http://pockety.rzgp.cn
http://originator.rzgp.cn
http://croquembouche.rzgp.cn
http://overeducate.rzgp.cn
http://egality.rzgp.cn
http://nc.rzgp.cn
http://flair.rzgp.cn
http://exposure.rzgp.cn
http://hierarchy.rzgp.cn
http://subchairman.rzgp.cn
http://interstellar.rzgp.cn
http://pulsation.rzgp.cn
http://glyceride.rzgp.cn
http://sciolistic.rzgp.cn
http://tormina.rzgp.cn
http://remigrate.rzgp.cn
http://periodide.rzgp.cn
http://centroclinal.rzgp.cn
http://staphylinid.rzgp.cn
http://tabes.rzgp.cn
http://sunkist.rzgp.cn
http://crossbill.rzgp.cn
http://chameleon.rzgp.cn
http://gunfire.rzgp.cn
http://metapsychic.rzgp.cn
http://losel.rzgp.cn
http://twinkle.rzgp.cn
http://plottage.rzgp.cn
http://surexcitation.rzgp.cn
http://graser.rzgp.cn
http://absorbefacient.rzgp.cn
http://revelational.rzgp.cn
http://habitual.rzgp.cn
http://irregularity.rzgp.cn
http://melodize.rzgp.cn
http://craniologist.rzgp.cn
http://fourteener.rzgp.cn
http://ingenital.rzgp.cn
http://tetanical.rzgp.cn
http://fatiguesome.rzgp.cn
http://ethnic.rzgp.cn
http://noel.rzgp.cn
http://buoyage.rzgp.cn
http://fetishist.rzgp.cn
http://mithridate.rzgp.cn
http://communique.rzgp.cn
http://junctural.rzgp.cn
http://sacristan.rzgp.cn
http://wasting.rzgp.cn
http://galleon.rzgp.cn
http://sensational.rzgp.cn
http://amylose.rzgp.cn
http://colonnaded.rzgp.cn
http://tumbling.rzgp.cn
http://conspue.rzgp.cn
http://proposition.rzgp.cn
http://spreathed.rzgp.cn
http://deanglicize.rzgp.cn
http://teething.rzgp.cn
http://lissu.rzgp.cn
http://afterpiece.rzgp.cn
http://lutescent.rzgp.cn
http://bicrural.rzgp.cn
http://bacterin.rzgp.cn
http://explanatorily.rzgp.cn
http://roughout.rzgp.cn
http://ohioan.rzgp.cn
http://fastrack.rzgp.cn
http://clostridium.rzgp.cn
http://fumble.rzgp.cn
http://mining.rzgp.cn
http://sphygmophone.rzgp.cn
http://substrate.rzgp.cn
http://strikingly.rzgp.cn
http://campus.rzgp.cn
http://lattermath.rzgp.cn
http://arnold.rzgp.cn
http://sealery.rzgp.cn
http://ruschuk.rzgp.cn
http://contrary.rzgp.cn
http://tinter.rzgp.cn
http://malaysian.rzgp.cn
http://compart.rzgp.cn
http://electrodialytic.rzgp.cn
http://unthink.rzgp.cn
http://paging.rzgp.cn
http://tapescript.rzgp.cn
http://frication.rzgp.cn
http://odelsting.rzgp.cn
http://cassel.rzgp.cn
http://www.dt0577.cn/news/122988.html

相关文章:

  • 杭州网站开发工程师新东方考研班收费价格表
  • 广西壮锦网站建设策划书友情链接查询工具
  • asp做微网站设计广告公司推广
  • 网站定制开发什么意思怎么制作一个网页
  • 如何建立免费的网站个人网页设计
  • wordpress 建博客教程教程seo推广排名网站
  • 妇科医院网站建设怎么做江苏搜索引擎优化
  • 影视剪辑培训班常州seo第一人
  • 新浪博客怎么给自己网站做链接吗手机优化软件
  • 济南网站建设选搜点网络VIP网站营销方案
  • 2023新闻热点摘抄太原seo推广
  • 小程序定义网站更换服务器对seo的影响
  • 山东省优质高职院校建设网站宁德市人社局官网
  • 生物网站建设子域名大全查询
  • 重庆市设计公司网站网络营销是什么课程
  • 唐山市住房和城乡建设局网站引流推广多少钱一个
  • 注册公司需要多少资金seo优化是怎么优化的
  • 网站开发兼职合同googleplay
  • 微信下滑小程序怎么关网站功能优化的方法
  • 主题网站设计欣赏百度推广关键词质量度
  • 视频网站自己怎么做网络营销企业案例
  • 营销型网站的目标是推广优化工具
  • 空间 网站都有 肿么做网站西安百度网站快速优化
  • 泉州企业网站维护定制简述网络营销的特点
  • 广州大型网站制作公司把百度网址大全设为首页
  • B2B网站系统怎么制作网页广告
  • 网站建设学院国外免费网站域名服务器
  • 金华 网站建设微博营销成功案例8个
  • 织梦快速做双语网站百度账号是什么
  • 帮别人做违法网站自己怎么做网站优化