Reactjs 带有CommonChunkPlugin的Serviceworker块不';t工作,未定义webpackJsonp

Reactjs 带有CommonChunkPlugin的Serviceworker块不';t工作,未定义webpackJsonp,reactjs,webpack,service-worker,commonschunkplugin,Reactjs,Webpack,Service Worker,Commonschunkplugin,我正在尝试使用commonchunkplugin使用webpack2创建serviceworker区块(sw.js),但是当尝试将/sw.js注册为serviceworker时,我得到了错误Uncaught ReferenceError:webpackJsonp未定义 显然,webpackJsonp是用于异步加载块的,并且正在破坏我的serviceworker文件。是否仍然可以删除serviceworker区块的异步加载 我的网页包配置: { 条目:{ 主要内容:[ “反应热加载程序/修补程序”

我正在尝试使用
commonchunkplugin
使用webpack2创建serviceworker区块(sw.js),但是当尝试将/sw.js注册为serviceworker时,我得到了错误
Uncaught ReferenceError:webpackJsonp未定义

显然,webpackJsonp是用于异步加载块的,并且正在破坏我的serviceworker文件。是否仍然可以删除serviceworker区块的异步加载

我的网页包配置:

{
条目:{
主要内容:[
“反应热加载程序/修补程序”,
`网页包开发服务器/客户端?http://${host}:${port}`,
“webpack/hot/only dev server”,
“./index.jsx”,
],
sw:“./sw.js”,
供应商:[……],
},
输出:{
文件名:'[name].js',
路径:解析(_dirname,'dist'),
公共路径:“/”,
},
解析:{扩展名:['.js','.jsx']},
性能:{hits:false},
上下文:解析(uu dirname,'src'),
devtool:“内联源映射”,
开发服务器:{
热:是的,
主办
港口,
contentBase:resolve(uu dirname,'dist'),
公共路径:“/”,
},
模块:{
规则:[
{
测试:/\.jsx?$/,,
使用“babel loader”,
排除:/node_模块/,
},
{
测试:/\.css$/,,
加载器:ExtractTextPlugin.extract('css-loader'),
},
],
},
插件:[
新的ExtractTextPlugin('main.css'),
新建webpack.HotModuleReplacementPlugin(),
新的webpack.NamedModulesPlugin(),
新建webpack.optimize.commonChunkPlugin({
名称:[“供应商”、“清单”],
}),
],
};

如果您只将您的webpack运行时代码(定义了webpackJsonp)提取到清单包中,并在加载所有其他脚本之前加载它,那么它应该可以工作

所以,你想重写为

plugins: [
   ...
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor'
    }),
    new webpack.optimize.CommonsChunkPlugin({
      name: 'manifest',
      chunks: 'vendor',
      minChunks: Infinity
    }),
  ],