Source Map

生产代码与开发代码完全不同,如果需要调试应用的话会非常的麻烦,错误信息无法定位,Soutce Map就会逆向得到源代码,

须在打包之后的代码文件的末尾位置例如添加//# sourceMappingURL=jquery-3.4.1.min.map字段即开启sourceMap我们就

可以调试Jquery的源代码了打开浏览器调试工具的Source模块也可以看到引入的.js文件,(html引入的.min.js文件)

Webpack配置Source Map

devtool配置我们开发工程中的辅助工具及与source map相关的一些配置,webpack支持12种sourceMap的格式,每种方式的效率

和效果各不相同,如下图所示:

下面对其他模式的sourcemap进行模式对比

1.eval模式:可以运行字符串中的代码eval('console.log(123)') 默认通过在代码中添加 //#sourceURL+路径 的形式定位源码文件这种

模式不会生成sourcemap文件,这种模式的速度是最快的,但是只能定位文件名称,而不知道具体的行列信息。

2.eval-sourceMap:除了可以定位文件 还可以定位行和列的信息,生成了SourceMap。

3.cheap-eval-source-map:定位到行,而没有列的信息。

4.cheap-module-eval-source-map 跟上面的cheap-eval-source-map对比多了个module,对比代码发现module对应源代码,跟我们编

写的源代码是一摸一样的,而上面的则是编译成ES5的代码。

综上所述拼接特点,基本上我们已经可以知道所有的模式了。

5.hidden-source-map:生成了注释文件 但是代码中并没有用注释的方式引入文件 我们是看不到效果的

6.nosource-source-map 保护源代码 不允许查看

Webpack 自动刷新问题

虽然有webpack-dev-server能给我们解决大部分问题,但是也有的问题显得比较鸡肋,比如输入文本字体样式,每次编辑完成之后刷页

面字体消失 还要重新输入,Webpack提供了一种不刷新的前提下,模块也可以及时更新的方法Webpack HMR。

Webpack HMR体验:模块热替换 应用运行过程中实时替换某个模块 应用运行状态不受影响。

webpack HMR已经集成到了webpack-dev-server中 只需要加上 webpack-dev-server --hot,也可以通过配置文件去开启由于JS无法像

CSS那样有条理的覆盖,所以JS与图片等无规律的热更新需要手动配置,webpack没有一个通用的状态,除非用到框架,因为框架本身

是一个模板,完整代码如下:

最新文章

  1. [.NET] 怎样使用 async & await 一步步将同步代码转换为异步编程
  2. wpf版扫雷游戏
  3. Code of Conduct
  4. Portable Operating System Interface for uni-X
  5. property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
  6. web前端跨域方案
  7. Java POI Word 写文档
  8. HTML5学习笔记简明版(1):HTML5介绍与语法
  9. iOS开发——UI篇Swift篇&UIAlertView/UIActionSheet
  10. paip.android 手机输入法制造大法
  11. Oracle SQL函数之转换函数To_char汇总
  12. hdu 5649 DZY Loves Sorting 二分+线段树
  13. 通往WinDbg的捷径
  14. 2016——3——16 kmp 7题
  15. Win 10中使用图片查看器
  16. [AHOI2008]紧急集合 / 聚会
  17. 路由查询命令tracert
  18. 修改Ubuntu的aptget源为阿里源的方法
  19. Requests中出现大量ASYNC_NETWORK_IO等待
  20. RMAN:简单的duplicate创建新数据库 for 12c+

热门文章

  1. HarmonyOS三方件开发指南(5)——Photoview组件
  2. Os-hackNos-特权文件提权
  3. Py第一次练习,第二次练习
  4. 炸裂!MySQL 82 张图带你飞
  5. pytest:conftest.py文件
  6. Windows server 2008常用优化设置
  7. Qt QMenuBar和QMenu以及QAction巧妙的使用方法
  8. Docker逃逸
  9. 【LinuxShell】wget 命令详解
  10. Mysql 不能使用逗号的情况