好吧——所以在 dart2js
之后有很多关于 Polymer 的类似问题。我似乎遇到了一个特定于执行此操作但也将其作为 Chrome 应用程序运行的问题。
我发现结果会根据变压器的顺序而变化(这是预期的)。
这是我迄今为止的结果:
transformers:
- chrome
- polymer:
entry_points: web/example.html
csp: true
- $dart2js:
csp: true
这在浏览器中效果很好,但在作为 Chrome 应用运行时会失败。
错误:未捕获类型错误:无法读取未定义的属性“apply”
(在 example.html_bootstrap.dart.js 文件中)
从现在开始,我将删除 chrome
转换器,因为它是多余的。
现在我将切换变压器的顺序:
transformers:
- $dart2js:
csp: true
- polymer:
entry_points: web/example.html
csp: true
在浏览器中运行时会失败。
错误:example.html_bootstrap.dart.js net::ERR_FILE_NOT_FOUND
作为 Chrome 应用运行时也会失败(具有相同的错误)。
现在我尝试复制 CDE 团队的成员正在做的事情。完全删除 $dart2js 变压器。 https://github.com/dart-lang/chromedeveditor/blob/master/ide/pubspec.yaml
transformers:
- polymer:
entry_points: web/example.html
csp: true
这可以从浏览器完美运行。
作为 Chrome 应用运行时会失败。
错误:blah blah 的 unsafe-eval
违反了 CSP 政策
为了覆盖我的基础,我也尝试了这个(未通过 CSP 政策):
- chrome
- polymer:
entry_points: web/example.html
csp: true
还有这个(不符合 CSP 政策):
- polymer:
entry_points: web/example.html
csp: true
- chrome
最佳答案
我认为当您使用 Polymer 时,您可以省略 chrome
变压器,并且 $dart2js
应该是最后一个变压器。
csp_fixer应该可以解决剩余的问题。
关于dart - Dart/Polymer 转换/编译为 JavaScript 后 Chrome 应用程序 CSP 违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511346/