我的应用程序构建在带有aurelia和webpack的asp.net核心spa中(基于Rob Eisenberg的教程)。它在chrome和firefox上完美运行,但在IE中,我需要支持的主浏览器,它有热模块重载的问题。我收到此错误:
webpack-hot-middleware's client requires EventSource to work. You should include a polyfill if you want to support this browser
我跑了npm install event-source-polyfill
在package.json
的独立性中,我补充道:
"webpack-hot-middleware": "^2.18.0",
"event-source-polyfill": "^0.0.12"
然后在我的webpack.config.js
中,我添加了
module.exports = {
entry: ['app': ['event-source-polyfill', 'aurelia-bootstrapper'],
// ...
};
如此处所示:https://github.com/jods4/aurelia-webpack-build/wiki/Polyfills
我还添加了
new webpack.ProvidePlugin({
es: 'event-source-polyfill'
}),
<{1> plugins
webpack.config.js
内
然后我导入了import 'event-source-polyfill/src/eventsource.min.js'
。
我的event-source-polyfill
位于node-modules文件夹中。我应该手动将其复制到某个地方吗?
那我该如何实际使用呢?
我不知道在aurelia做什么告诉它使用这个polyfill IE。到目前为止,错误仍然是一样的。
答案 0 :(得分:0)
在我回答您的问题之前,我想说亚历克斯·塔兰(Alex Taran)是对的,即使您添加了事件源polyfill,HMR也无法与IE一起使用,并且没有人能够与IE配合使用这样做。
尽管如此,实际的问题是如何通过webpack添加事件源polyfill ,确实可以做到这一点。就是这样。
在webpack.config.js
文件底部附近,您会找到“插件”部分。您需要如图所示添加或修改webpack.ProvidePlugin
。在此代码段中,它添加了jquery并注释了事件源插件的行。
plugins: [
new webpack.DefinePlugin({ IS_DEV_BUILD: JSON.stringify(isDevBuild) }),
new webpack.ProvidePlugin({
//"window.EventSource": ['event-source-polyfill', 'EventSourcePolyfill'],
$: "jquery", jQuery: "jquery", "window.jQuery": "jquery"
}),
new HtmlWebpackPlugin({ template: 'Views/Shared/_LayoutTemplate.cshtml', filename: "../../Views/Shared/_Layout.cshtml", inject: false, metadata: {}, alwaysWriteToDisk: true }),
new AureliaPlugin({ aureliaApp: "boot" }),
new GlobDependenciesPlugin({ "boot": ["ClientApp/**/*.{ts,html}"] }),
new ModuleDependenciesPlugin({}),
extractCSS
]
很明显,您必须先在npm中添加它。