指定要在 Angular 中使用的 NPM 模块平台
Specify NPM module platform to use in Angular
我有一个现有的 Angular 应用程序,它在 Chrome 中很有用,但在(显然)Internet Explorer 上失败了。这是怎么回事:
我安装的几个 NPM 模块带有不同的发行版。例如,kendo-angular-charts
下的文件夹结构如下所示:
- dist
|- cdn
|- es
|- es2015
|- npm
|- systemjs
当站点在 IE 中崩溃时,是因为 es2015\common\configuration.service.js
中的以下声明:
export class Change {
constructor(key, value) {
this.key = key;
this.value = value;
}
}
它中断(无效语法错误)因为 ES2015 类 是 not supported in Internet Explorer。但是 es
文件夹中还有一个完全有效的 ES5 版本文件。
那么我该如何使用它呢?
我检查了 angular.json
和 package.json
似乎相关的选项,但找不到任何东西。
请参阅 Angular 浏览器支持文档 (https://angular.io/guide/browser-support#enabling-polyfills) - 无需导入不同版本的特定包。如果您使用 Angular CLI,您只需编辑 src/polyfills.ts
文件并取消注释浏览器 polyfill。
如果您不使用 Angular CLI,您可以使用 NPM 导入 core-js 并导入相关的 polyfills (https://www.npmjs.com/package/core-js)。
有没有找到这个问题的答案。我对网格有同样的问题。几周前它还在工作,现在不行了。我无法确定是什么改变导致使用 es2015 与 es 库。是否有特定的 core-js polyfill 可以控制它?
指定要在编译器 output 中使用的 JavaScript 方言的正确方法是 target
属性 in tsconfig.json
。在我们的例子中,我们需要将其值设置为 es5
.
但这仅适用于您的代码,不适用于导入的包。
此外,大多数导入通常只指定包名称,但您也应该查找专门针对错误版本的导入。在我们的例子中,我们在 @progress/kendo-angular-charts/dist/es2015
下进行了导入,这是我们问题的根源。
我有一个现有的 Angular 应用程序,它在 Chrome 中很有用,但在(显然)Internet Explorer 上失败了。这是怎么回事:
我安装的几个 NPM 模块带有不同的发行版。例如,kendo-angular-charts
下的文件夹结构如下所示:
- dist
|- cdn
|- es
|- es2015
|- npm
|- systemjs
当站点在 IE 中崩溃时,是因为 es2015\common\configuration.service.js
中的以下声明:
export class Change {
constructor(key, value) {
this.key = key;
this.value = value;
}
}
它中断(无效语法错误)因为 ES2015 类 是 not supported in Internet Explorer。但是 es
文件夹中还有一个完全有效的 ES5 版本文件。
那么我该如何使用它呢?
我检查了 angular.json
和 package.json
似乎相关的选项,但找不到任何东西。
请参阅 Angular 浏览器支持文档 (https://angular.io/guide/browser-support#enabling-polyfills) - 无需导入不同版本的特定包。如果您使用 Angular CLI,您只需编辑 src/polyfills.ts
文件并取消注释浏览器 polyfill。
如果您不使用 Angular CLI,您可以使用 NPM 导入 core-js 并导入相关的 polyfills (https://www.npmjs.com/package/core-js)。
有没有找到这个问题的答案。我对网格有同样的问题。几周前它还在工作,现在不行了。我无法确定是什么改变导致使用 es2015 与 es 库。是否有特定的 core-js polyfill 可以控制它?
指定要在编译器 output 中使用的 JavaScript 方言的正确方法是 target
属性 in tsconfig.json
。在我们的例子中,我们需要将其值设置为 es5
.
但这仅适用于您的代码,不适用于导入的包。
此外,大多数导入通常只指定包名称,但您也应该查找专门针对错误版本的导入。在我们的例子中,我们在 @progress/kendo-angular-charts/dist/es2015
下进行了导入,这是我们问题的根源。