AngularJS 4可以在IE9上运行吗?

use*_*710 1 javascript polyfills angular

我正在编写一个小应用程序来定位一些旧的浏览器,但我很乐意在Angular 4中编写它.它可能吗?我需要哪种polyfils?

Jol*_*boy 8

是的,它可以在IE9中运行

我建议使用Angular-CLI.
假设您已经安装了node和npm,使用angular-cli run:

npm install -g @angular/cli
ng new PROJECT_NAME
Run Code Online (Sandbox Code Playgroud)

这应该是您所需要的,但如果您需要进一步的帮助 ng help

这将为您提供基于Webpack的通用Angular 4.0设置.要支持IE9,您还需要做两件事.

  1. 编辑src/polyfills.ts.取消注释IE9评论下的所有导入.之后该部分应如下所示:

    /** IE9, IE10 and IE11 requires all of the following polyfills. **/
    import 'core-js/es6/symbol';
    import 'core-js/es6/object';
    import 'core-js/es7/object';
    import 'core-js/es6/function';
    import 'core-js/es6/parse-int';
    import 'core-js/es6/parse-float';
    import 'core-js/es6/number';
    import 'core-js/es6/math';
    import 'core-js/es6/string';
    import 'core-js/es6/date';
    import 'core-js/es6/array';
    import 'core-js/es6/regexp';
    import 'core-js/es6/map';
    import 'core-js/es6/set';
    import 'core-js/es7/array';
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在tsconfig中,编辑"target"字段"es5".之后你的文件看起来应该是这样的

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "pretty": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
        "es2017",
        "dom"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)