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

广东东莞自己建站教程沧州网络推广管理公司

广东东莞自己建站教程,沧州网络推广管理公司,固始县住房和城乡规划建设局网站,浙江高端网站文章目录 前言包准备CDN 集成代码分包Tree Shaking原理实现条件#xff1a;解决 treeShaking 无效方案#xff1a;示例代码#xff1a; 热更新#xff08;HMR#xff09; 前言 Webpack 作为现代前端开发中的核心构建工具#xff0c;提供了丰富的特性来帮助开发者优化和打… 文章目录 前言包准备CDN 集成代码分包Tree Shaking原理实现条件解决 treeShaking 无效方案示例代码 热更新HMR 前言 Webpack 作为现代前端开发中的核心构建工具提供了丰富的特性来帮助开发者优化和打包应用。本文将探讨 Webpack 的 CDN 集成、代码分包、Tree Shaking 以及热更新HMR等关键特性。 我们将使用前一篇文章中的代码然后我们引入一些图片、css 等资源文件已经一些常用的第三方库如lodash 包准备 安装文件处理的 loader 和后续分析的包 yarn add webpack-bundle-analyzer terser-webpack-plugin url-loader file-loader -D在 webpack.config.js 添加 处理文件的 loader , file-loader module: {rules: [// ... 省略{test: /\.(jpg|png|jpeg|gif)$/,use: [file-loader],},],}, 修改 list.vue templatedivimg :srcjsJpg /h3前端三大框架:/h3ulli v-foritem in list :keyitem{{ item }}/li/ul/div /templatescript import jsJpg from /static/js.jpg export default {name:List,data() {return {list: [Vue, React, Angular],jsJpg};}, }; /script 运行结果 打包结果 执行 yarn build CDN 集成 CDN内容分发网络的使用可以显著提高资源加载速度特别是对于静态资源。 我们可以有三种种方式来完成 output 配置中的 publicPath 这里我们如果没有 cdn可以通过修改 hosts 文件的方式, 文件路径C:\Windows\System32\drivers\etc添加内容127.0.0.1 ziyu.aliyun.com, 最后我们添加启动端口 const mode process.env.NODE_ENV development ? development : production; const isDev process.env.NODE_ENV development;output: {path: path.resolve(__dirname, dist),filename: bundle.js,publicPath: isDev ? / : http://ziyu.aliyun.com:3000/,},添加前运行文件 打包运行后文件效果 配置externals属性将某些依赖项从打包文件中排除并通过 CDN 链接直接引入。 externals: {vue: Vue,vue-router: VueRouter, }在 html 文件中添加 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title% htmlWebpackPlugin.options.title %/titlescript srchttps://cdn.jsdelivr.net/npm/vue2.7.16/dist/vue.js/scriptscript srchttps://unpkg.com/vue-router3.0.0/dist/vue-router.js/script/headbodydiv idapp/div/body /html添加打包分析器 const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPluginplugins: [// ...new BundleAnalyzerPlugin({analyzerMode: static,reportFilename: report.html,openAnalyzer: false,}),], 执行 yarn build, 查看report.html , 没有 vue和vue-router的代码 使用html-webpack-plugin插件在生成的 HTML 文件中动态插入 CDN 资源链接。 // 1. 配置插件new HtmlWebpackPlugin({title: vuew webpack,template: ./src/index.html,}), // 2. 配置html// 可以随便添加cdn代码分包 代码分包是 Webpack 优化应用加载性能的重要手段。通过将代码分割成多个包可以实现按需加载减少单次加载的数据量。 代码准备 我们新建一个utils/calc.js文件然后补充代码 export const sum (a, b) a b;常规使用 hello.vue 中引用 templatebutton clickcalcRes计算 : 5 6 结果/button {{ res }} /templatescript import { sum } from ../utils/calc; export default {data() {return {res: 0,};},methods: {calcRes() {this.res sum(5, 6);},}, }; /script打包结果 import() 分包 templatebutton clickcalcRes计算 : 5 6 结果/button {{ res }} /templatescript import { sum } from ../utils/calc; export default {data() {return {res: 0,};},methods: {calcRes() {this.res import(/* webpackChunkName: calc */ ../utils/calc).then(({ sum }) {this.res sum(5, 6);});},}, }; /script自动分包Webpack 的SplitChunksPlugin插件可以自动分析模块依赖关系将共享模块提取到单独的包中 供我们自定义更加细粒度的分包策略 optimization: {splitChunks: {chunks: all, // all, async, and initialminChunks :10,// 当包大于1000byte就拆分maxSize: 1000,// 拆分的每个包不能小于500byteminSize: 500,cacheGroups:{utils: {test: /utils/,filename: [id]_utils.js}}},},多入口分包通过entry属性手动定义多个入口点Webpack 会为每个入口点生成一个独立的包。 Tree Shaking Tree Shaking 是移除代码中未引用部分的过程它利用了 ES2015 模块的静态结构特性。 原理 一是先「标记」出模块导出值中哪些没有被用过二是使用 Terser 删掉这些没被用到的导出代码 实现条件 使用 ES2015 模块确保项目使用import和export语法。配置sideEffects在package.json中添加 sideEffects: false字段告诉 Webpack 哪些文件是纯模块可以安全地进行 Tree Shaking。在配置中开始标记optimization.usedExports true, 将构建设置成生产模式 mode production 解决 treeShaking 无效方案 babel/preset-env 或 babel-preset-env 不要将 target 设置为 node第三方包中的 sideEffects: false 示例代码 我们安装 loadsh-es包来测试它比 lodash 包更好的 tree-shaking yarn add lodash-es yarn add terser-webpack-plugin -Dbutton clicklog防抖函数/buttonscriptimport { debounce } from lodash-es;export default {methods: {log: debounce(()console.log(log....), 500),}} /script 更新配置文件 optimization: {minimize: true,minimizer: [new TerserPlugin()],usedExports: true,}, 打包结果可以看到结果中只有loadsh-es包的 debunce函数 热更新HMR 热更新允许在开发过程中实时更新应用而无需刷新页面。 配置webpack-dev-server通过webpack-dev-server提供热更新服务。使用HotModuleReplacementPlugin在 Webpack 配置中添加此插件实现模块的热替换。 devServer{hottrue }plugins: [new webpack.HotModuleReplacementPlugin() ]mounted() {if (module.hot) {module.hot.accept(./Hello.vue, () {});}},
http://www.hkea.cn/news/14523749/

相关文章:

  • 聊城集团网站建设费用厦门建行网站首页
  • 做花生的网站山东华邦建设集团网站
  • 网站规划作品沧州万网信息技术有限公司
  • 上海私人网站建设wordpress登录注册界面
  • 网络推广及网站建设合作协议php网站开发需要学哪些
  • 帝国cms制作网站地图wordpress手机排版
  • 企业推广网站有哪些手机网站有哪些
  • 一个电商网站建设需要哪些技术网站推广策划思路的内容
  • html5 网站网站制作论文答辩
  • 高端网站建设设计公司排名枣阳市建设局网站
  • 网站宽度960用wordpress制作网页的思路
  • 特色美食网站建设策划书六安人才招聘网官网
  • 杭州哪里找网站建设的兼职qq注册账号免费申请
  • 网站建设 菜鸟教程wordpress内容主题模板下载
  • 做网站去哪里备案设置wordpress首页显示文章摘要
  • 浅灰色做网站背景粤语seo是什么意思
  • 网站被k表现企业网站的首页
  • 做的网站上更改内容改怎么回事浙江网站建设自助建站优化
  • 把自己做的网页发布到网站百度问答兼职怎么做
  • 深圳网站建设服务合同网站你应该知道我说的是什么吧
  • 无为教育网站搭建网站干什么
  • 建筑网站建设需要注意什么宁波网站推广高手
  • 珠海做网站的企业文化展示墙设计
  • 一个网站有哪几种漏洞营销工具有哪些
  • 最新73种暴利产品竞价单页网站制作带订单后台系统模板山西省住房和城乡建设厅网站首页
  • 做医药商城网站的公司互联网技术学院
  • 网站建设公司知识杏坛餐饮网站建站
  • 计算机网络技专业术网站开发全网营销老婆第一人
  • 西安网站推广wordpress ppt插件
  • 易思espcms企业网站管理系统wordpress怎么分享到微信