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

Webpack5 第五节

代码映射Source Map定位问题

Source Map:源代码和构建后代码的映射。为了当项目运行出现问题或者报错时,通过控制台能够快速定位到具体出错的代码

配置

devtool:"source-map"

推荐配置

devtool:"eval-cheap-module-source-map"
  • eval 具有最好的性能,但并不能帮助你转译代码。
  • cheap 配置的map 质量会稍微差一点(保留行报错,没有列报错),但是不影响问题定位,还可以提高性能
  • module 包含第三方模块的报错

深入理解Tree Shaking

  • Tree Shaking(摇树)
    • 描述移除 JavaScript 上下文中的未引用代码
      • 函数return后的代码
      • 只声明未使用的代码
      • 只引入未使用的代码

  • 注意
    • Tree-shaking只对ES Module规范的模块起作用
    • 针对静态结构进行分析,只有import和export是静态的导入和导出。而commonjs有动态导入和导出的功能,无法进行静态分析。
  • 与Source Map有兼容问题
    • devtool 只能设置以下四种
devtool:source-map | inline-source-map | hidden-source-map | nosources-source-map
    • eval 模式是将 js 输出为字符串不是 ES Modules规范,导致Tree Shaking失效

  • 使用
    • 生产模式
      • 自动开启

    • 开发模式
      • usedExports
const TerserPlugin=require('terser-webpack-plugin')
optimization:{// 标记未使用的代码usedExports:true,// 删除已经标记未使用的代码minimize:true,minimizer:[new TerserPlugin()]
}
      • sideEffects

  • 副作用
    • 引入一个模块,调用了模块中的函数,或者修改当前模块、全局的数据,就有副作用
      • 修改全局的变量
      • 在原型上扩展方法
      • css的引入

  • 开启副作用
optimization:{// 开启副作用标识sideEffects:true,
}

  • 标识代码是否有副作用
// package.json
"sideEffects":false (告诉webpack所有代码都没有副作用)
"sideEffects":true (告诉webpack所有代码都有副作用)
"sideEffects":['xxx.js','*.less'](告诉webpack哪些有副作用,不移除)

webpack中的缓存

  • babel缓存
    • 特点
      • 第二次构建时,会读取之前的缓存
    • 配置
use:[options:{cacheDirectory:true}
]
  • 文件资源缓存

    • 配置webpack哈希值
      • hash
      • chunkhash
      • contenthash

webpack中的模块解析和排除依赖打包

  • 模块解析
    • 配置
// webpack.config.js
resolve:{alias:{// 指定路径的别名'@':resolve('src')},// 自动解析模块的后缀名extensions: ['.js', '.json', '.less'],
}

  • 排除依赖打包
    • 配置
// webpack.config.js
externals:{'jquery':'jQuery'
}
// index.
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

http://www.dtcms.com/a/420185.html

相关文章:

  • 网站的建立设计app的软件
  • “优化编码(Z)” 带来更稳定?还是带来不稳定?- Task.Delay引发的思考
  • 医疗网站前置审批广州制作网站公司简介
  • 帮人做钓鱼网站以及维护建设工程招标专业网站
  • 河南基安建设集团有限公司网站江苏常州网站建设
  • 小视频网站源码不良网站进入窗口
  • 分割数组得到最小绝对差
  • openGauss数据库自动安装脚本
  • GSM8K:评估大模型数学推理能力的关键数据集
  • 网站建立公司百度站长平台h5网站
  • P1989 三元环计数
  • asp 公司网站建设网站培训班
  • 郴州网站制作公司电话网站下拉广告
  • 营销型网站建设的概念WordPress网站封装app教程
  • 天津建设厅网站导航网站怎么赚钱
  • 做带支付功能的网站网站和软件建站
  • 广西桂林建设局网站手游排行榜
  • 【QT第二章】信号与槽
  • 网站建设站点做网站通过什么赚钱
  • 济宁网站建设是什么意思wordpress头像上传插件
  • 做影视网站什么cms好用吗网站配置域名这样做
  • 【Spring】Spring Boot 自动配置
  • 青浦网站优化前程无忧做网站多少钱
  • 常熟港口建设费申报网站怎么网站建设
  • 文件的读写 二进制形式打开文件
  • 吴忠住房和城乡建设网站成都官网seo技术
  • 惠州建网站服务天津专业网站制作流程优势
  • 北京联通网站备案php 网站模板
  • 清河做网站哪里好齐河网站建设
  • CodeBuddy CLI工具深度测评:从零到一实现鸿蒙游戏开发实践