如何在 Angular2 组件内检测 javascript 中的 Webpack/SystemJS?

How to detect Webpack/SystemJS in javascript inside an Angular2 component?

当我写一个 Angular 与 SystemJS 和 Webpack 兼容的库时,有时,加载页面后会有一些不同的结果。为了修补组件并消除差异,我试图找到正确的方法来检测它是组件内部的 webpack 环境还是 systemJS。

一个 hacky 解决方案: 在 webpack 中,为每个组件添加一个属性,如“_ngcontent-xxx-n”,因此 systemJS 加载的组件和 Webpack 加载的组件之间的属性长度存在差异,所以我这样做了:

( this.elHTML.attributes[x] === undefined ) ? //Code for webpack : //Code for SystemJS;

但问题是属性的长度可能会发生变化,并在未来产生错误,请问有更好的解决方案吗?

我找到了正确的解决方案。要检查的 属性 在 window javascript 对象上。

( window.hasOwnProperty("SystemJS") ) ? //Code for SystemJS : //Code for Webpack;