浅谈webpack devtool里的7种SourceMap模式

yizhihongxing

当我们使用webpack打包项目时,我们可以通过 devtool 选项来配置生成source map。 它们有不同的视觉效果(适用于不同的开发场景)和内存资源消耗(可能影响构建时间)。 下面我们来详细讲解webpack devtool里的7种source map模式。

1. eval

这种模式是将每个模块封装到 eval(...) 中,因此生成的source map只针对eval后生成的代码,不包含初始代码。这使得它是最快的选项,但也是不可读的,因为它没有将代码映射回原始代码。它的类型为 eval

devtool: 'eval'

2. source-map

这种模式能够生成传统的source map,它为每一行代码生成一个单独的map文件,因此打包的速度会比较慢。它提供最佳的质量,但代价是构建速度会更慢。它的类型为 source-map

devtool: 'source-map'

3. cheap-source-map

这种模式与 source-map 类似,但它不包含列信息(即哪个位置出错了),所以对构建速度和源代码保护有一定的帮助。它的类型为 cheap-source-map

devtool: 'cheap-source-map'

4. cheap-module-source-map

这种模式与 cheap-source-map 一样,但它在加载了包含loader的Source Map时,会显示 loader 的名称。它的类型为 cheap-module-source-map

devtool: 'cheap-module-source-map'

5. inline-source-map

这种模式会将source map以dataURL的方式打包进源文件中,而不是生成一个单独的Map文件,这对于较小的项目比较有用。它的类型为 inline-source-map

devtool: 'inline-source-map'

6. eval-source-map

这种模式是速度最快的,而且生成的Source Map不会消耗磁盘空间。它通过在每个模块末尾追加 //# sourceMappingURL=eval-source-map 的 sourceMappingURL 注释来实现。它的类型为 eval-source-map

devtool: 'eval-source-map'

7. hidden-source-map

这种模式不会在源代码中添加source map,同时生成一个单独的map文件,只提供给捕获异常时使用。它的类型为 hidden-source-map

devtool: 'hidden-source-map'

示例1:

// webpack.config.js
module.exports = {
  devtool: 'source-map',
  // ...
}

这个例子中我们将devtool配置成 source-map ,它将为每个文件生成单独的SourceMap,并为报错提供详细的信息。

示例2:

// webpack.config.js
module.exports = {
  devtool: 'cheap-module-source-map',
  // ...
}

这个例子中我们将devtool配置成 cheap-module-source-map ,它对于大型项目是非常有用的,并且将为报错提供module信息。

除了以上列举的模式外,还有其他模式可以使用。 但需要根据具体的情况来选择正确的源码映射类型,以获得最佳的开发体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈webpack devtool里的7种SourceMap模式 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 原生js封装无缝轮播功能

    下面我将为您介绍如何使用原生js封装无缝轮播功能。 1. 分析需求 在开发轮播图时,我们需要分析出以下需求: 定时轮播:设置一个定时器来实现自动进行图片轮播。 点击切换:在页面上添加左右箭头按钮,点击按钮可以切换到相应的图片。 无缝轮播:在最后一张图和第一张图之间添加一个过渡效果,实现无缝轮播。 2. 实现思路 通过CSS样式来实现页面布局及显示效果。 通过…

    css 2023年6月9日
    00
  • 130个漂亮CSS布局站点参考

    130个漂亮CSS布局站点参考 简介 “130个漂亮CSS布局站点参考”是一个汇集了130个基于CSS的模板和布局的站点库,提供了多种类型的站点布局样式,方便用户对站点布局进行参考和借鉴。该站点库涵盖了多个行业和场景,包括博客、企业、电商和个人展示页等,让用户能够选择适合自己站点的布局样式。 使用方法 打开“130个漂亮CSS布局站点参考”网站 选择所需场景…

    css 2023年6月11日
    00
  • Vue.js实现点击左右按钮图片切换

    要使用Vue.js实现点击左右按钮图片切换,需要遵循以下步骤: 步骤一:创建Vue实例并定义data对象 首先需要创建一个Vue实例,并且在data对象里定义需要用到的变量。例如,定义一个变量images来存放图片,定义变量currentIndex来表示当前显示的图片的下标: <template> <div> <img :src…

    css 2023年6月10日
    00
  • JS实现简单计数器

    当我们需要记录某个数据的变化次数时,可以使用JS实现一个简单计数器。下面给出JS实现简单计数器的完整攻略。 步骤一:创建计数器变量 首先,我们需要创建一个计数器变量,用来记录数据的变化次数。可以使用 let 关键字来创建变量。 let count = 0; 步骤二:编写计数器函数 接下来,我们需要编写一个计数器函数。计数器函数用于实现对计数器变量的增加和减少…

    css 2023年6月10日
    00
  • 关于调试CSS跨浏览器样式bug的问题

    下面是针对调试CSS跨浏览器样式bug问题的攻略,包含以下步骤: 第一步:确认问题 在发现样式问题时,首先需要确认问题出现的位置和及时跟踪变化。目前有两种方式确认问题: 1.使用浏览器开发者工具 每一款现代浏览器均内置了开发者工具,可以通过F12或者Ctrl+Shift+I进入。开发者工具中的“元素”标签可以方便地对样式进行遍历和调整。通过这个标签查看元素默…

    css 2023年6月9日
    00
  • 微信小程序scroll-view实现自定义滚动条

    让我来详细讲解一下“微信小程序scroll-view实现自定义滚动条”的完整攻略。 简介 在一些需要滑动的页面中,我们可能需要自定义滚动条的样式,以让页面更加美观。微信小程序中可以通过使用 scroll-view 组件并在其中嵌套一个自定义的滚动条实现。 实现方法 实现自定义滚动条的方法主要可以分为以下步骤: 在 scroll-view 中添加一个自定义的滚…

    css 2023年6月10日
    00
  • CSS中的几个伪元素使用介绍

    下面是关于CSS中几个伪元素使用介绍的完整攻略。 什么是CSS伪元素? 伪元素是CSS中一种特殊的选择器,允许你对元素的某些区域进行样式化。伪元素通过在元素的选择器中添加特殊的关键字来定义,如:::before,::after,::first-line和::first-letter。 伪元素的使用方法 ::before 和 ::after ::before和…

    css 2023年6月10日
    00
  • 你正在寻找的CSS3 动画技术

    CSS3 动画技术是指使用 CSS3 属性和选择器来实现网页元素的动画效果。以下是一个完整攻略,帮助你学习如何使用 CSS3 动画技术。 使用CSS3的动画属性 CSS3 提供了很多用于创建动画的属性,这些属性包括: animation-name: 指定动画需要应用到的元素 animation-duration: 指定动画的持续时间 animation-ti…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部