简而言之: 可能,但不切实际
。为什么?您的应用程序将不再是渐进式的,单个js文件可能会变得非常大(性能降低,而webpack却没有提供任何代码拆分优势)。
虽然我既不喜欢
create-react-app也不将所有内容都捆绑到一个
bundle.js文件中,但是您首先要弹出:
yarneject或者
npm run eject-您可能可以使用一些第3方软件包来覆盖而不弹出,但是我将其留给您弄清楚。
然后,您需要转到
config/webpack.config.js并执行以下操作:
- 删除
InlineChunkHtmlPlugin
从进口要求下plugins:
,删除isEnvProduction && shouldInlineRuntimeChunk && new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime-.+[.]js/])
它创建了一个内部的块文件列表index.html
文件时,建筑物 - 在下
output:
,更改filename:
为filename: "static/js/bundle.min.js",
- 在下
output:
,删除该chunkFilename:
属性,因为您在生产期间不再对js文件进行分块 - 在下
optimization:
,删除splitChunks:
属性,因为您在构建时不再拆分块 - 在下
optimization:
,设置runtimeChunk:
为runtimeChunk: false
避免在构建时创建runtime-chunk.js文件 - 在下
plugins:
,MiniCssExtractPlugin
通过更改filename
为filename: "static/css/main.min.css",
和删除选项,将选项更改为仅输出单个CSS文件chunkFileName:
。
工作仓库 :https :
//github.com/mattcarlotta/cra-single-
bundle
我还向
package.json仓库添加了两个启动脚本:
1.)测试生产版本;运行
yarn prod或
npm run prod在 编译源代码之后。
2.)要分析Webpack捆绑包,请运行
yarn analyze或
npm run analyze查看块分布图。



