首页 > 其他分享 >webpack打包格式及使用说明

webpack打包格式及使用说明

时间:2023-07-16 16:02:46浏览次数:60  
标签:map 映射 sourcemap 生成 source webpack 源码 格式 打包

webpack打包的devTool选项格式的含义如下

选项 含义 优点 缺点 适用场景
eval eval 会将每一个module模块,执行eval,执行后不会生成sourcemap文件,仅仅是在每一个模块后,增加sourceURL来关联模块处理前后对应的关系 速度快 由于会映射到转换后的代码,而不是映射到原始代码,所以不能正确的显示行数 开发环境
source-map

source-map会为每一个打包后的模块生成独立的sourcemap文件, 打包后的代码最后面一句代码是 //#sourceMappingURL=bundle.js.map,每个模块生成独立的.map文件

精确到行和列的映射 速度慢 生产环境
inline 该属性不会生成独立的 .map文件,而是将 .map文件以dataURL的形式插入 精确到行和列的映射 体积大  
cheap 只映射到源代码的某一行,不精确到列,可以提升 sourcemap 生成速度

体积小

速度稍快

不能映射到列 生产环境 
module sourcemap 生成时会关联每一步 loader 生成的 sourcemap 和第三方模块的映射,配合 sourcemap-loader 可以映射回最初的源码 映射到最初源码   生产环境 
nosources

不生成 sourceContent 内容,可以减小 sourcemap 文件的大小

sourcemap 里是有 sourceContent 部分的,也就是直接把源码贴在这里,这样的好处是根据文件路径查不到文件也可以映射,但这样会增加 sourcemap 的体积。

如果你确定根据文件路径能查找到源文件,那不生成 sourceContent 也行。

体积小   生产环境
hidden 就是生成 sourcemap 但是不关联,即代码最后没有 //#sourceMappingURL=bundle.js.map     生产环境 

webpack 也会提示你应该按照什么顺序来组合。

它是按照这个正则来校验的:^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$

最佳实践:

线上的时候当然要启用 hidden,不关联 sourcemap,但要生成 sourcemap,不大需要 module 来映射回最初的源码,所以可能是 hidden-source-map 或者 hidden-cheap-source-map  这种。

开发的时候可以用 eval 的方式,这样是每个模块单独做映射,不用从 bundle.js 开始映射,然后 cheap 也可以开启,只映射到源码的某一行,提升生成速度,一般需要 module 来映射回最初的源码,所以可能是 eval-cheap-module-source-map 这种

 

 

 

参考:

彻底搞懂 Webpack 的 sourcemap 配置原理 
理解webpack中的devTool的配置项 
一文搞懂SourceMap以及webpack devtool 

标签:map,映射,sourcemap,生成,source,webpack,源码,格式,打包
From: https://www.cnblogs.com/mengff/p/17557973.html

相关文章

  • 【三】Ajax与异步编程之数据传输格式ajax
    【三】Ajax与异步编程之数据传输格式ajax【1】什么是ajaxajax,一般中文称之为:"阿贾克斯",是英文“AsyncJavascriptAndXml”的简写译作:异步js和xml传输数据技术。ajax的作用:ajax可以让js代替浏览器向服务端程序发送http请求,与服务端进行数据通信,在用户不知道的情况下......
  • 【四】Ajax与异步编程之数据传输格式ajax同源策略和跨域方案
    【四】Ajax与异步编程之数据传输格式ajax同源策略和跨域方案【1】同源策略同源策略(ameoriginpolicy),是浏览器为了保护用户信息在服务端的安全的而设置一种安全机制。所谓的同源就是指代通信的两个地址(例如服务端接口地址与浏览器客户端页面地址)之间比较,是否协议、域名(IP)和......
  • python 格式检查
    Python格式检查在Python编程中,代码的格式化和风格一直都是非常重要的。良好的代码格式可以提高代码的可读性和可维护性,减少错误和调试的难度。为了确保代码的规范和一致性,我们可以使用各种工具和方法来进行Python代码的格式检查。PEP8Python社区为了规范Python代码的编写风格,制......
  • python 格式化为2位小数
    Python格式化为2位小数在编程中,经常需要对数字进行格式化以便更好的显示或输出。Python提供了多种方式来格式化数字,其中一种常见的需求是将一个数字格式化为2位小数。在本文中,将介绍如何使用Python来实现这个需求,并提供一些示例代码。使用round()函数Python中的round()函数可以......
  • 如何修改dll代码后重新打包
    前期使用反编译工具,例如:dnSpy,打开指定dll,展开dll后,右键可对其命名空间,模块,程序集进行编辑。因为缺少源码,反编译后的dll代码与源码存在差异,导致编译后的dll大概率会报错,无法修改代码后重新打包,如果要修改dll里的代码并重新打包,需要用到微软自带反编译工具。路径:C:\ProgramFiles(......
  • Java导出格式化后的JSON文件
    Java导出格式化json文件直接上代码:privatevoiddownloadJsonFile(LifeDTOlifeDTO,HttpServletResponseresponse){Stringcontent=JSON.toJSONString(lifeDTO,SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue,SerializerFeature......
  • idea进行maven打包的时候报错Cannot create resource output directory
    今天在进行maven打包的时候报错了Cannotcreateresourceoutputdirectory:XXXXX,之前遇到过,但是之前选择了重启就好了,这次真不想重启,有很多需要保存的shell页面原因呢就是target被占用,导致打包不了。但是我仔仔细细检查了,真的没这情况啊,没有任何文件夹占用了然后各种看,最后,在......
  • Mysql导入sql脚本报错,时间格式数据为空
    Mysql导入sql脚本报错,时间格式数据为空Mysql导入sql脚本时候导入的sql脚本中有时间格式为空的时候时间格字段会报错。解决方式也很简单:查看sql_mode:select@@session.sql_mode;查询结果:STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,N......
  • maven打包repackage failed: Unable to find main class
    maven打包提示这个问题。原因:主项目pomxml文件中,不需要<build>打包的配置,只需要在有入口类的模块pom.xml配置好<build><build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.......
  • Nuke导出视频缺失 H.246格式 的解决办法
    同事在使用Nuke导出视频时报错,报错提示:缺失H.246格式后来经过我的研究发现,QuicktimePlayer在标准安装时,默认不关联一些格式(具体是哪些格式不清楚)QuicktimePlayer在安装过程中,不要选择标准安装,应该是选择自定义安装,然后在安装的过程中,要完全安装这样就不会报错了。 p......