如何使用 JavaScript 源代码映射(.map 文件)?

2022-08-29 23:08:25

最近,我看到一些带有扩展名的文件附带了一些JavaScript库(如Angular),这在我脑海中提出了一些问题:.js.map

  • 它的作用是什么?为什么Angular护理的人员要交付文件?.js.map
  • 我(作为JavaScript开发人员)如何使用该文件?angular.min.js.map
  • 我应该关心为我的JavaScript应用程序创建文件吗?.js.map
  • 它是如何创建的?我看了一下,它充满了奇怪的格式字符串,所以我假设它不是手动创建的。angular.min.js.map

答案 1

这些文件用于已缩小的JavaScript和CSS(现在也是TypeScript)文件。它们称为源映射。当你缩小一个文件时,就像棱角分明.js文件一样,它需要数千行漂亮的代码,然后把它变成只有几行丑陋的代码。希望在将代码交付到生产环境时,使用的是缩小代码,而不是完整的未缩小版本。当你的应用处于生产状态并出现错误时,源映射将帮助你获取丑陋的文件,并允许你查看代码的原始版本。如果您没有源映射,那么任何错误充其量都是隐晦的。.map

CSS 文件也是如此。一旦你拿一个 SassLess 文件并将其编译为 CSS,它看起来就不像它的原始形式了。如果启用源映射,则可以看到文件的原始状态,而不是修改后的状态。

因此,要按顺序回答您的问题:

  • 它的作用是什么?取消引用未剥离的代码
  • 开发人员如何使用它?使用它来调试生产应用。在开发模式下,您可以使用完整版的Angular。在生产环境中,您将使用缩小版本。
  • 我应该关心创建一个js.map文件吗?如果你关心能够更容易地调试生产代码,那么是的,你应该这样做。
  • 它是如何创建的?它是在构建时创建的。有一些生成工具可以像构建其他文件一样为您构建 .map 文件。如果输出文件不在项目根目录 #71 中,则源映射失败

我希望这是有道理的。


答案 2

开发人员如何使用它?

  1. 不要在索引.html文件中链接js.map文件(不需要)

  2. 缩小工具(好的)将注释添加到 .min.js 文件中:

    //# sourceMappingURL=yourFileName.min.js.map
    

    这将连接您的.map文件。

    最小.jsjs.map 文件准备就绪时...

  3. Chrome:打开开发工具,导航到“”选项卡。您将看到文件夹,其中保存了未缩小的应用程序文件。