最近,我看到.js.map
一些JavaScript库(例如Angular)附带了具有扩展名的文件,这在我脑海中引发了几个问题:
- 这是为了什么 为什么Angular的员工会关心传递
.js.map
文件? - 我(作为JavaScript开发人员)如何使用该
angular.min.js.map
文件? - 我应该关心
.js.map
为JavaScript应用程序创建文件吗? - 如何创建?我看了一下,
angular.min.js.map
里面充满了格式奇怪的字符串,所以我认为它不是手动创建的。
最近,我看到.js.map
一些JavaScript库(例如Angular)附带了具有扩展名的文件,这在我脑海中引发了几个问题:
.js.map
文件?angular.min.js.map
文件?.js.map
为JavaScript应用程序创建文件吗?angular.min.js.map
里面充满了格式奇怪的字符串,所以我认为它不是手动创建的。Answers:
该.map
文件是为js
和css
(现在ts
也是如此)已经过压缩文件。它们被称为SourceMaps。当您缩小文件(例如angular.js文件)时,它将占用数千行漂亮的代码,并将其变成仅几行丑陋的代码。希望在将代码交付生产时,您使用的是最小化的代码,而不是完整的,未最小化的版本。当您的应用在生产中且出现错误时,源地图将帮助您获取丑陋的文件,并允许您查看代码的原始版本。如果您没有源地图,那么任何错误充其量似乎都是神秘的。
CSS文件也一样。一旦获取了SASS或LESS文件并将其编译为CSS,它看起来就不会像原始形式一样。如果启用源地图,则可以看到文件的原始状态,而不是修改后的状态。
因此,依次回答您的问题:
我希望这是有道理的。
.js.map
文件是否不维护手工制作的文件与缩小的文件之间的关系(通常称为reference)?
只是想关注问题的最后一部分;如何创建源地图文件?通过列出我知道可以创建源地图的构建工具。
grunt-contrib-uglify
gulp-uglify
--create_source_map
映射文件将未缩小的文件映射到缩小的文件。如果您在未缩小的文件中进行更改,则更改将自动反映到文件的缩小版本中。