【问题标题】:How to implement error tracking in a polymer?如何在聚合物中实现误差跟踪?
【发布时间】:2016-01-21 10:42:42
【问题描述】:
Polymer 中是否有错误跟踪方法?
问题是显然 vulcanize 和 polybuild 过程无法提供任何源映射(如果我错了,请纠正我)。这意味着即使我将使用全局 window.onerror 函数在硫化 Java 脚本代码中捕获异常,我也无法将其映射回来并在源文件中找到错误的实际位置。
任何解决方案/解决方法都将受到高度赞赏。
【问题讨论】:
标签:
javascript
polymer
polymer-1.0
vulcanize
【解决方案1】:
这是我对可以做什么的想法。请同时提供您的想法和解决方案。此解决方案未经测试。
根据https://github.com/PolymerLabs/polybuild polybuild 工具同:
vulcanize --inline-css --inline-scripts --strip-comments index.html | polyclean | crisper --html index.build.html --js index.build.js
顺序是:
1) vulcanize 生成一个 html 格式的文件。
2) polyclean 在内部使用 uglifyjs 并执行一些清理
3)crisper 用于将已经丑陋和缩小的 js 从 html 中分离出来
据我所知,uglifyjs 不能使用 html 文件作为输入,因此 polyclean 手动剪切部分 js 代码',将其放入 uglifyjs 并将其粘贴回来(我希望我能正确理解 polyclean 的工作原理)。这就是为什么在这种情况下创建源映射是无用的。
我的想法是改变 polyclean 和 crisper 的顺序并修改 polyclean 以允许使用 uglifyjs2 的外部选项:
新订单:
1) vulcanize 生成一个 html 格式的文件。
2)crisper 用于将格式化的 js 与 html 分开。
3) polyclean 在内部使用 uglifyjs 并执行一些清理(在这种情况下,我们需要对 js 和 html 文件都使用)
所以首先您将拥有 html 文件和格式化的 js 文件,然后您才能使用带有 --source-map 和 --source-map-include-sources 选项的 uglifyjs2(从 polyclean 调用还是独立调用?)。
现在您可以使用生成的源映射继续跟踪您的错误,该源映射已经包含在步骤 #2 中生成的 js 文件的格式化副本。