Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >devtools怎么用_webpack devtool

devtools怎么用_webpack devtool

作者头像
全栈程序员站长
发布于 2022-11-08 07:04:43
发布于 2022-11-08 07:04:43
70800
代码可运行
举报
运行总次数:0
代码可运行

devtool配置

一、devtool配置

1.source map 源码地图

本小节的知识与 webpack 无关

前端发展到现阶段,很多时候都不会直接运行源代码,可能需要对源代码进行合并、压缩、转换等操作,真正运行的是转换后的代码

与此同时就给调试带来了困难,因为当运行发生错误的时候,我们更加希望能看到源代码中的错误,而不是转换后代码的错误

为了解决这一问题,chrome浏览器率先支持了source map,其他浏览器纷纷效仿,目前,几乎所有新版浏览器都支持了source map source map实际上是一个配置,配置中不仅记录了所有源码内容,还记录了和转换后的代码的对应关系

下面是浏览器处理source map的原理

最佳实践

  1. source map 应在开发环境中使用,作为一种调试手段
  2. source map 不应该在生产环境中使用,source map的文件一般较大,不仅会导致额外的网络传输,还容易暴露原始代码。即便要在生产环境中使用source map,用于调试真实的代码运行问题,也要做出一些处理规避网络传输和代码暴露的问题。

2.webpack中的source map

使用 webpack 编译后的代码难以调试,可以通过 devtool 配置来优化调试体验

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = { 
   
    mode: "production",
    devtool: "hidden-source-map"
}

3.对于开发环境

以下选项非常适合开发环境:

eval – 每个模块都使用 eval() 执行,并且都有 //@ sourceURL。此选项会非常快地构建。主要缺点是,由于会映射到转换后的代码,而不是映射到原始代码(没有从 loader 中获取 source map),所以不能正确的显示行数

eval-source-map – 每个模块使用 eval() 执行,并且 source map 转换为 DataUrl 后添加到 eval() 中。初始化 source map 时比较慢,但是会在重新构建时提供比较快的速度,并且生成实际的文件。行数能够正确映射,因为会映射到原始代码中。它会生成用于开发环境的最佳品质的 source map。

cheap-eval-source-map – 类似 eval-source-map,每个模块使用 eval() 执行。这是 “cheap(低开销)” 的 source map,因为它没有生成列映射(column mapping),只是映射行数。它会忽略源自 loader 的 source map,并且仅显示转译后的代码,就像 eval devtool。

cheap-module-eval-source-map – 类似 cheap-eval-source-map,并且,在这种情况下,源自 loader 的 source map 会得到更好的处理结果。然而,loader source map 会被简化为每行一个映射(mapping)。

具体的配置见文档:devtool中文文档,这些信息不用专门去记,开发时查阅文档即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185350.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月6日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
webpackdevtool配置简单对比简书_钢铁雄心4toolpack
官方对devtool配置的定义很简单:选择一种 source map 格式来增强调试过程,不同的值会明显影响到构建build和重新构建rebuild的速度。
全栈程序员站长
2022/11/10
8300
webpackdevtool配置简单对比简书_钢铁雄心4toolpack
3-7 sourceMap的配置
sourceMap,顾名思义,就是对源文件的映射。比如打包压缩后的代码对应源文件中的哪一行代码,这能够极大地方便开发者的调试。
love丁酥酥
2019/08/20
1.3K0
3-7 sourceMap的配置
SourceMap知多少:介绍与实践
说起sourceMap大家肯定都不陌生,随着前端工程化的演进,我们打包出来的代码都是混淆压缩过的,当源代码经过转换后,调试就成了一个问题。在浏览器中调试时,如何判断原始代码的位置?
Nealyang
2020/09/11
1.1K0
SourceMap知多少:介绍与实践
Webpack 实战系列一:正确使用 Sourcemap
Sourcemap 协议最初由 Google 设计并率先在 Closure Inspector 实现,它能够将经过压缩、混淆、合并的代码还原回未打包状态,帮助开发者在生产环境中精确定位问题发生的行列位置。
Tecvan
2021/12/15
4.1K0
Webpack 实战系列一:正确使用 Sourcemap
深入浅出 Source Map
通俗的来说, Source Map 就是一个信息文件,里面存储了代码打包转换后的位置信息,实质是一个 json 描述文件,维护了打包前后的代码映射关系。关于 Source Map 的解释可以看下 Introduction to JavaScript Source Maps[7]。
zz_jesse
2023/09/11
5940
深入浅出 Source Map
彻底搞懂 Webpack 的 sourcemap 配置原理
用过 webpack 的都知道,webpack 的 sourcemap 配置是比较麻烦的,比如这两个配置的区别:
神说要有光zxg
2022/11/11
1.6K0
彻底搞懂 Webpack 的 sourcemap 配置原理
一文了解source-map
作为一个开发工程师——无论是什么开发,要求开发环境最不可少的一点功能就是——debug功能。当我们通过webpack 将我们的源码打包成了 bundle.js 。试想:实际上客户端(浏览器)读取的是打包后的bundle.js ,那么当浏览器执行代码报错的时候,报错的信息自然也是bundle的内容。我们如何将报错信息(bundle错误的语句及其所在行列)映射到源码上?为了解决这个问题,google 提出了sourcemap 的想法,并在chorme上最先支持sourcemap的使用。sourcemap可以帮我们直接定位到编译前代码的特定位置。
用户8921923
2022/10/24
8090
【webpack】聊聊 Source Map 的使用
本文主要聊聊为什么要在 Webpack 中使用 Source Map?以及 Webpack 提供了哪些 Source Map 的使用方式,我们应该在开发环境和生产环境如何使用 Source map
GopalFeng
2022/08/01
1.1K0
【webpack】聊聊 Source Map 的使用
第四十八期:webpack的四个小技巧
思考这样一个问题,你对webapack究竟了解多少?大部分时间我们忙于业务开发,很少去思考这个问题,项目已经配置好了,我们只管开发就好了,陷入业务开发中,就没有时间去思考别的问题,这是一个普遍现象。
terrence386
2022/07/15
3500
Webpack 开发工具与模块热替换
静默虚空
2018/01/05
1.2K0
webpack实战——生产环境配置【中】
上一篇中,描述了一些关于生产环境的配置:环境变量的使用、配置文件描述、开启生产模式、环境变量自定义配置等,从这几个方面入手都可以对生产环境产生一些有利影响。
流眸
2020/09/24
1.4K0
入门webpack的最佳实践(基于webpack4.X 5.X) - source-map
来到这家公司之后,一直在使用webpack,也写了不少笔记,但是都比较零散,现在决定整理一下webpack相关的知识点,由浅入深,方便自己后续查漏补缺,后续会一直更新。
Jou
2022/09/28
4330
走近webpack(5)--devtool及babel的使用
  这一章咱们来说一下如何使用babel以及如何用webpack调试代码。这是基础篇的最后一章,这些文章只是罗列的给大家讲解了在一些场景中webpack怎样使用,这章结束后会给大家讲解一下如何在我们实际的开发及上线的工作环境中自如的使用webpack。   既然我们要使用babel,那babel是什么呢?一句话,babel能让你使用当前浏览器还暂时或者无法支持的“js”,比如es6,es7,JSX等。   那么来安装一下吧: npm install --save-dev babel-core babel-l
zaking
2018/05/02
8760
走近webpack(5)--devtool及babel的使用
Webpack 模块化原理和SourceMap
原创不易,未经作者允许禁止转载!! Webpack模块化 Webpack打包的代码,允许我们使用各种各样的模块化,但是最常用的是CommonJS、ES Module。 包括如下原理: CommonJS模块化实现原理; ES Module实现原理; CommonJS加载ES Module的原理; ES Module加载CommonJS的原理; CommonJS: 打包前 const { dateFormat, priceFormat } = require('./js/format'); console.
前端LeBron
2021/12/08
5420
走近webpack(5)–devtool及babel的使用
  这一章咱们来说一下如何使用babel以及如何用webpack调试代码。这是基础篇的最后一章,这些文章只是罗列的给大家讲解了在一些场景中webpack怎样使用,这章结束后会给大家讲解一下如何在我们实际的开发及上线的工作环境中自如的使用webpack。
全栈程序员站长
2022/07/20
9460
走近webpack(5)–devtool及babel的使用
Webpack之阿拉丁神灯
现今的web,都很丰富,它们拥有着复杂的JavaScript代码,一大堆依赖包,为了简化开发的复杂度,前端世界出现了很多很好的实践方法。
江米小枣
2020/06/15
6080
入门webpack的最佳实践(基于webpack4.X 5.X)-- 打包配置优化
来到这家公司之后,一直在使用webpack,也写了不少笔记,但是都比较零散,现在决定整理一下webpack相关的知识点,由浅入深,方便自己后续查漏补缺,后续会一直更新。
Jou
2022/08/28
7690
入门webpack的最佳实践(基于webpack4.X 5.X)-- 打包配置优化
webpack的基础入门
现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法
javascript.shop
2019/09/04
1.5K0
webpack的基础入门
webpack devtools_webpack loader和plugin的区别
首先我们需要知道source map是什么?顾名思义资源映射,它做的就是维护打包处理后的代码与源代码之间的映射关系,只有映射的精确性则取决于webpack的配置项devtool,其决定了项目打包时是否以及如何生成source map,而生成的source map不同决定了构建产物的体积和构建以及重新构建的速度的不同。具体配置项可选值可参考webpack文档这里不一一列举。
全栈程序员站长
2022/11/08
4950
(16/24) webpack打包后的调试方法
在程序开发中,调试程序是最频繁的,那使用了webpack后,所有的代码都打包到了一起,这给调试带来了困难,但是webpack在设计时就已经考虑好了这点,它支持生产Source Maps来方便我们的调试。
wfaceboss
2019/04/08
1.5K0
(16/24) webpack打包后的调试方法
相关推荐
webpackdevtool配置简单对比简书_钢铁雄心4toolpack
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档