提供Internet Explorer支持
提交者 @wmarques 和 @anthony-o
JHipster仅支持Evergreen Browser。 但是,您仍然可以轻松地支持某些较旧的浏览器,例如Internet Explorer。
为此,您必须:
- 在您的
tsconfig
中将目标设置为es5
。 - 然后,您有两个选择:
- 从’core-js’添加正确的polyfill,如果您不知道应该使用哪个,请检查Angular CLI项目及其polyfill。
- 或使用babel+Babel预设环境 自动基于浏览器列表文件导入正确的core-js polyfill。
使用Babel的完整提示
首先,添加以下package.json
依赖项:@babel/core
、@babel/preset-env
和 babel-loader
。yarn
例子:
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.json
和tsconfig-aot.json
中将target
更改为es5
。
参见 GitHub issue 和 this SO answer 了解更多信息。