Если я соберу все стили в один файл и разделю только javascript, то все будет работать отлично.Эта проблема возникает только тогда, когда я пытаюсь разделить css.
Я устанавливаю ленивую загрузку для маршрутов и некоторый компонент, который требует тяжелой библиотеки, такой как библиотека диаграмм.
Вот что яиспользуя
css module
webpack ^4.26
MiniCssExtractPlugin ^0.4.4
Loadable.ReactLoadablePlugin ^5.5.0
Параметры загрузчика MiniCssExtractPlugin
module: {
rules: [
{
test: /\.css$/,
exclude: /react-flexbox-grid/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
query: {
modules: true,
minimize: true,
localIdentName: '[hash:base64:5]'
}
},
{
loader: 'postcss-loader',
options: {
plugins: (loader) => [
require('postcss-modules-values')(),
require('postcss-nested')(),
require('autoprefixer')(),
]
}
},
]
}
//
]
},
Когда я запускаю веб-пакет, он генерирует
"undefined": [
{
"id": "",
"name": null,
"file": "Building~Search.css?v=05a4504a93bc",
"publicPath": "/dist/Building~Search.css?v=05a4504a93bc"
},
{
"id": "",
"name": null,
"file": "Building~Search.css?v=05a4504a93bc",
"publicPath": "/dist/Building~Search.css?v=05a4504a93bc"
},
Параметры SplitChunks Как я уже упоминал ранее, если я объединю все стили, все будет работать нормально, то в Reaction-loadable.json
optimization: {
splitChunks: {
maxAsyncRequests: 20,
maxInitialRequests: 20,
minChunks: 2,
chunks: 'all',
// cacheGroups: {
// styles: {
// name: 'styles',
// test: /\.css$/,
// chunks: 'all',
// enforce: true
// },
// }
},
},
1021 * ssr рендеринг
let modules = []
const context = {}
const htmlRoot = (
<Provider store={store}>
<StaticRouter location={urlPath} context={context}>
<AppRoot />
</StaticRouter>
</Provider>
)
store
.runSaga(rootSaga)
.done.then(() => {
const storeState = store.getState()
const sagaLookups = storeState.lookups
const RTS = renderToString(
<Provider store={store}>
<StaticRouter location={urlPath} context={context}>
<Loadable.Capture report={moduleName => {modules.push(moduleName)}}>
<AppRoot />
</Loadable.Capture>
</StaticRouter>
</Provider>,
)
const head = Helmet.renderStatic()
res.status(code).send(renderDom(RTS, port, host, storeState, head, getBundles(stats, modules)))
}
})
.catch(e => {
console.log(e.message)
res.status(500).send(e.message)
})
renderToString(htmlRoot)
store.close()
нет