提供Internet Explorer支持

提交者 @wmarques@anthony-o

JHipster仅支持Evergreen Browser。 但是,您仍然可以轻松地支持某些较旧的浏览器,例如Internet Explorer。

为此,您必须:

  1. 在您的tsconfig中将目标设置为es5
  2. 然后,您有两个选择:
    1. 从’core-js’添加正确的polyfill,如果您不知道应该使用哪个,请检查Angular CLI项目及其polyfill。
    2. 或使用babel+Babel预设环境 自动基于浏览器列表文件导入正确的core-js polyfill。

使用Babel的完整提示

首先,添加以下package.json依赖项:@babel/core@babel/preset-envbabel-loaderyarn例子:

yarn add @babel/core @babel/preset-env babel-loader --exact --dev

(已针对JHipster v6.3.1生成的应用程序上的可用IE11版本使用以下版本进行了测试:

    "@babel/core": "7.6.4",
    "@babel/preset-env": "7.6.3",
    "babel-loader": "8.0.6",

)

现在,在src/main/webapp/app/polyfills.ts的顶部添加以下行 :

import 'core-js/stable';
import 'regenerator-runtime/runtime';

webpack/webpack.common.js文件中,

            {
                test: /manifest.webapp$/,
                loader: 'file-loader',
                options: {
                    name: 'manifest.webapp'
                }
            },

之后,添加以下行:

            {
                test: /\.js/,
                use: {
                  loader: 'babel-loader',
                  options: {
                    "presets": [
                      [
                        "@babel/preset-env",
                        {
                          "targets": {
                            "firefox": "60",
                            "ie": "11"
                          },
                          "useBuiltIns": "entry",
                          "corejs": 3
                        }
                      ]
                    ]
                  }
                },
                exclude: /@babel(?:\/|\\{1,2})runtime|core-js/,
              },

最后,在tsconfig.jsontsconfig-aot.json中将target更改为es5

参见 GitHub issuethis SO answer 了解更多信息。