浏览器如何获取“sourcemapped”javascript文件的源文件?
我正在开始使用angular JS构build的现有项目。 当我打开chrome开发工具的“源代码”视图时,浏览器告诉我:
检测到源地图…
我看到这个:
哪里
inline.bundle.js
-
main.bundle.js
- 等等…
是编译的文件,其原始文件在Ive圈出的源目录中,例如
-
ng://
-
webpack://
- 等等..
浏览器不显示任何networking请求这些ng://
, webpack://
文件,所以我的问题是,这些文件从哪里来? 浏览器如何获取这些数据?
我猜服务器提供了一个“源代码”文件/ s到浏览器,其中包含所有的原始源代码及其相应的编译代码? 然后浏览器parsingsourcemap,并为这些文件生成一个“虚拟”文件树 – 这就是为什么没有networking请求? 这些“文件”从哪里来?
源代码可以被烧成原始的JS包,虽然通常不会在生产中完成。
它也可以是一个外部文件(通常在包的最后一行引用)。
Webpack通过devtool
config选项允许所有这些不同的选项 。
如果你通过angularjs,webpack等浏览你应该看到以.map扩展名结尾的文件。 当你加载一个网页时,服务器发送一个包含源地图URL的标题。 从规范的头看起来像:
SourceMap: <url>
源地图必须遵循特定的格式。
{ "version" : 3, "file": "out.js", "sourceRoot": "", "sources": ["foo.js", "bar.js"], "sourcesContent": [null, null], "names": ["src", "maps", "are", "fun"], "mappings": "A,AAAB;;ABCDE;" }
该规范可在google文档https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?hl=zh_CN&pli=1&pli=1上find
为了进行debugging,引入了源地图,以便您可以看到源中的错误来自哪里。 例如,你可能会有一些sass文件被编译为css,并且不知道css来自哪个sass文件。
- 不能添加材料deviseangular度的项目
- MongoDb,NodeJs,Express和Angular 2,来自两个集合的数据join,复制和显示
- 问题在JavaScript的recursion调用
- 量angular器 – 如何在量angular器中设置默认的input语言
- angular4 – 我继续得到即使手动安装portfinder也找不到模块“portfinder”
- 在typescript(angular2)应用程序中joinnode_module
- 如何发送消息与websocket
- Angular2 POST Observable Request返回一个不可读的JSON对象
- 我怎么能从另一个JS通过Protractor JS调用外部JS?