当前位置: 首页 > news >正文

建设通网站账号/聊城今日头条最新

建设通网站账号,聊城今日头条最新,如何做哟个优惠券网站,惠州做棋牌网站建设有哪些公司火狐浏览器的源映射错误本文是Microsoft的Web开发技术系列的一部分。 感谢您支持使SitePoint成为可能的合作伙伴。 作为一名JavaScript开发人员,我确定您已经陷入这种情况:代码的生产版本出了点问题,直接从生产服务器调试它是一场噩梦&#…

火狐浏览器的源映射错误

本文是Microsoft的Web开发技术系列的一部分。 感谢您支持使SitePoint成为可能的合作伙伴。

作为一名JavaScript开发人员,我确定您已经陷入这种情况:代码的生产版本出了点问题,直接从生产服务器调试它是一场噩梦,仅仅是因为它已被缩小或已经被从另一种语言(例如TypeScript或CoffeeScript)编译而成。

好消息? 最新版本的浏览器可以通过使用源映射来帮助您解决此问题。 在本教程中,我将向您展示如何在所有浏览器中查找“源地图”,并充分利用要调试的那几分钟。

等待,什么是源映射?

根据出色的JavaScript Source Maps简介文章,Source Map是“一种将组合/缩小的文件映射回未构建状态的方法。 在进行生产时,连同最小化和合并JavaScript文件,您将生成一个源映射,其中包含有关原始文件的信息。

请立即阅读Ryan Seddon的文章,因为它详细介绍了源地图的工作原理。 然后,您将了解源映射使用一个中间文件,该文件在代码的生产版本与其原始开发状态之间进行匹配。 该文件的格式在此处描述: 源地图修订版3提案

现在说明一下,在开发WebGL Babylon.js开源框架时,我将分享我们目前的工作方式: http : //www.babylonjs.com 。 它是用TypeScript编写的。 但是,如果您使用压缩/最小化的纯JavaScript或其他语言(例如CoffeeScript),则原理将保持不变。

现在,让我们直接在浏览器中玩源地图魔术。

我们将要使用的演示页面

最近,我一直在我们的游戏引擎中实现对Gamepad API的支持。 让我们在本教程中使用其代码。

在本文中,我使用以下浏览器:

  • Internet Explorer 11 , 八月更新 (版本11.0.9600.17239),甚至更好,开发人员频道版本: devchannel.modern.ie,支持Gamepad API。 IE的旁注:Microsoft正在使用新的浏览器Microsoft Edge,因此请确保检查最新的Web标准支持: status.modern.IE 。
  • Chrome 38开发人员频道(版本38.0.2125.8 dev-m)/ Opera 23
  • Firefox 31或Firefox 34每晚

导航到该URL ,您将看到此页面:

GamePad测试页

将Xbox 360或Xbox One控制器插入计算机的USB端口。 按A按钮激活游戏板并玩游戏:

测试页属性

但请放心,您不需要游戏手柄控制器即可遵循本教程。

注意: TypeScript编译器会自动为您生成源映射。 如果您想在生成代码的精简版时生成源映射,我建议您使用Uglify JS 2: https : //github.com/mishoo/UglifyJS2

对于本文,我什至将两者混为一谈。 我缩小了由TypeScript生成的JS,并使用以下命令行保持了源映射的完整性:

uglifyjs testgamepad.js -o testgamepad.min.js --source-map testgamepad.min.js.map --in-source-map testgamepad.js.map

如何使用原始源代码进行调试

使用Internet Explorer 11

载入游戏手柄测试页后,请按IE11中的F12。

你会看到HTML源引用两个JavaScript文件: babylon.gamepads.js页面和年初testgamepad.min.js在最后。 第一个文件来自我们在Github上的框架,第二个文件是显示如何使用它的简单示例。

按“调试器”按钮(或CTRL + 3),然后按文件夹图标。

免费学习PHP!

全面介绍PHP和MySQL,从而实现服务器端编程的飞跃。

原价$ 11.95 您的完全免费

您会看到IE11提供了两个文件进行调试: babylon.gamepads.tstestgamepad.min.js

调试文件选择器

让我们从回顾babylon.gamepads.ts案例开始。 为什么IE显示它而不是浏览器正在执行的.js版本?

这要归功于源映射机制。 在babylon.gamepads.js文件的末尾,您可以找到以下特定行:

//# sourceMappingURL=babylon.gamepads.js.map

打开“ babylon.gamepads.js.map”以了解其工作原理:

{
"version": 3,
"file": "babylon.gamepads.js",
"sourceRoot": "",
"sources": [ "babylon.gamepads.ts" ], 
"names": [ "BABYLON", "BABYLON.Gamepads", ... ]
}

通过阅读此JSON文件,IE11知道它应该将babylon.gamepads.ts映射到babylon.gamepads.js 。 因此,它直接为您提供了调试TypeScript源代码的功能,而不是编译的JS版本。

在IE11 F12控制台中打开babylon.gamepad.ts ,您会看到一些以前从未见过的东西,一些TypeScript语言:

调试gamepad.js

您可以像调试JS代码一样对其进行调试。 即使是浏览器当前正在执行的已编译JavaScript版本。

在第17行上设置一个断点,然后在浏览器窗口中按F5。 您将能够调试构造函数的TypeScript版本:

设置断点

上至第20行,将鼠标悬停在this并展开以检查gamepadEventSupported是否设置为true:

解决这个

使用Chrome / Opera

加载同一页面 ,然后在Chrome中按F12或在Opera中按CTRL + SHIFT + I

使用Chrome开发者工具

单击配置图标,并确保启用Enable JavaScript source maps选项。 它应该默认设置:

启用JS源映射

Chrome / Opera可让您查看已执行的babylon.gamepads.js代码,但如果尝试在JavaScript版本中设置断点,则不会显示该断点。 它将在映射到此版本的源代码中进行设置: babylon.gamepads.ts

例如,尝试在babylon.gamepads.ts JavaScript文件的第18行上设置一个断点,您会看到它将在babylon.gamepads.ts TypeScript文件的第17行上设置:

设置TypeScript文件

当然,您也可以直接在TypeScript源代码中设置适当的断点,就像之前在IE11中看到的那样。

在托管我们的演示页面的浏览器窗口中按F5键,您现在就可以调试我的TypeScript代码了。 滚动到第20行,然后将鼠标悬停在this.gamepadEventSupported变量上。 它应该显示为true:

解决这个

使用Firefox

加载同一页面 ,然后按CTRL + SHIFT + S打开本机调试器(不要使用F12 / Firebug,它不支持源映射)。

检查是否选中了Show Original Sources选项:

显示原始来源

像往常一样在第17行上设置一个断点,然后重新加载页面以插入代码。 Firefox不支持将鼠标悬停在原始源上。 上至第20行,并在右侧面板中扩展this对象,以检查gamepadEventSupported是否也设置为true。

游戏手柄支持true

缩小JavaScript文件呢?

到目前为止,我们仅使用babylon.gamepads.ts源调试了babylon.gamepads.js代码。 但是,这个缩小的testgamepad.min.js JavaScript文件呢?

第一种解决方案是美化代码。 它适用于IE11 / Chrome / Opera和Firefox。

IE11中 ,按“漂亮打印”按钮或按CTRL + SHIFT + P:

缩小文件

Chrome / Opera中 ,按“ {}”按钮:

Chrome中的缩小文件

Firefox中 ,还请按“ {}”按钮:

Firefox中的缩小文件

这要好得多,但仍不如源映射集好。 为了更进一步,我们刚刚在IE11的8月更新中添加了一项新功能。 即使已将源地图从.js文件中删除,也可以加载它。

想象一下,您希望避免其他人使用源地图调试Web应用程序的生产代码,但是您仍然希望能够这样做吗? 只需从.js文件中删除sourceMappingURL行。

使用Internet Explorer 11,您仍然可以通过加载本地.map和关联的源代码来使用源地图。 为此,右键单击“ testgamepad.min.js”选项卡,然后按“选择源地图”:

源图

在此处下载它们。

将其解压缩到您的首选目录中,并导航到它以选择正确的.map文件:

地图文件

现在可以再次调试原始源代码:

原始源代码

注意,该选项卡已重命名为testgamepad.ts ,并且在我们显示一些TypeScript时,现在已经键入了第一个变量。

酷吧?

本文是Microsoft的Web开发技术系列的一部分。 我们很高兴与您分享Microsoft Edge及其新的渲染引擎 。 获取免费的虚拟机或者在你的Mac,iOS设备,Android或Windows设备上远程测试modern.IE 。

翻译自: https://www.sitepoint.com/enhance-your-javascript-debugging-with-cross-browser-source-maps/

火狐浏览器的源映射错误

http://www.lbrq.cn/news/1331101.html

相关文章:

  • 无锡网络公司官网/河南郑州网站推广优化外包
  • 东游科技网站建设/赵阳竞价培训
  • wordpress 文章 来源/seo深圳网络推广
  • 网页设计公司开设需要投资多少钱/seo 公司
  • 网站开发w亿玛酷1专注/线上招生引流推广方法
  • 做优化的网站用什么空间好/营销方式有哪几种
  • 做网站需要备案吗/国内疫情最新情况
  • 网站开发页面/360关键词排名推广
  • htm网站制作/石家庄邮电职业技术学院
  • 教育培训门户网站源码/武汉seo关键词优化
  • 怎么做代购彩票网站吗/郑州网站关键词优化外包
  • 做网站灵宝/营销软文范例大全100
  • 资深的家居行业网站模板/长沙网络营销顾问
  • 做系统的网站/百度高级检索入口
  • 大连华南网站建设/我是站长网
  • 九一制作厂网站/淘宝关键词排名怎么查
  • 天河区网站建设/seo关键词如何设置
  • 天目西路网站建设/外贸推广代理
  • 网站建设如果登录失败/西安网站建设比较好的公司
  • 阿里云可以做几个网站/哪里可以接广告
  • 厦门城乡住房建设厅网站/排名软件下载
  • wordpress5本地访问速度慢/seo研究中心学员案例
  • 浙江备案需要开启网站吗/高级搜索引擎技巧
  • 企业信息查询平台有哪些/电脑系统优化软件排行榜
  • 网站建设销售合作合同范本/今天的新闻 最新消息
  • 用vs做网站 怎么安装/网站服务器查询工具
  • 做网站用宋体有版权问题吗/百度指数搜索榜
  • 网站开发一定要用框架吗/推荐友情链接
  • 婚纱摄影东莞网站建设技术支持/全球十大网站排名
  • 钱宝网站怎么做任务/品牌营销公司
  • 短剧小程序系统开发:连接创作者与用户的桥梁
  • 自然语言处理NLP (1)
  • 零基础 “入坑” Java--- 十五、字符串String
  • CentOS 9 配置国内 YUM 源
  • 【MySQL篇】:MySQL基础了解以及库和表的相关操作
  • 哈希表应用(map,set共同作用)