【发布时间】:2018-02-28 09:00:53
【问题描述】:
我在开发模式下使用 SystemJS,在生产环境中使用 AOT(这不是最好的方法,但我们在一年前开始使用该应用程序)。当我们刚刚在 Chrome/Edge 上进行测试时,一切都很顺利,直到我们在 IE/Firefox/Safari 上检查了该站点并发现它全部损坏了。在这些浏览器中检查时没有显示任何内容。
我搜索了一下,发现它可能需要一些 polyfills 来支持不同的浏览器。在我的 SystemJS 开发环境中,我有
<!-- Polyfill(s) for older browsers -->
<script src="~/node_modules/core-js/client/shim.min.js"></script>
<script src="~/node_modules/zone.js/dist/zone.js"></script>
<script src="~/node_modules/reflect-metadata/Reflect.js"></script>
<script src="~/node_modules/systemjs/dist/system.src.js"></script>
<script src="/systemjs.config.js"></script>
<script>
System.import('app').catch(function (err) {
console.error(err);
});
</script>
在我的 tsconfig.json 中,我有
{
"compileOnSave": true,
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules",
"app/aotfactories"
]
}
在我的 package.json 依赖项中,我有(与配置相关的依赖项)
"core-js": "^2.5.1",
"reflect-metadata": "^0.1.10",
"rxjs": "^5.4.3",
"systemjs": "^0.20.19",
"typescript": "^2.5.2",
"zone.js": "^0.8.14",
我相信/core-js/client/shim.min.js 行可以达到我的目的,但是当在 IE/Firefox/Safari 上检查时,它仍然没有任何影响。我来自 SystemJS 背景,对基于 webpack/cli 的解决方案知之甚少。
我发布的供应商包包含相同的/core-js/client/shim.min.js,但它们也不适用于 AOT。
【问题讨论】:
-
如果你的应用中没有最后一个,它甚至对 Chrome 也不起作用,所以我猜你已经以某种方式导入了它们
-
@AngularInDepth.com 没有最后的什么?它在 chrome 和 edge 中正常工作,但在其他人中不能正常工作
https://carbid.co.il/ -
最后 3 个依赖项
-
@AngularInDepth.com 他们来自
node_modules,它在chrome和edge中工作正常,但在firefox或ie上没有加载角度
标签: angular systemjs polyfills angular2-aot browser-support