wal*_*wal 14 reactjs webpack create-react-app
这与这个问题类似,但是这两个答案都不能解决问题。
运行后npm run build的结果index.html类似于:
<script>!function (i) { function e(e) { for //rest omitted
<script src="/static/js/2.3f294f32.chunk.js"></script>
<script src="/static/js/main.7b9daa35.chunk.js"></script>
Run Code Online (Sandbox Code Playgroud)
第一个<script>元素是内联的 javascript,我已将其提取到一个名为的文件中loader.js
<script src="/loader.js"></script>
<script src="/static/js/2.3f294f32.chunk.js"></script>
<script src="/static/js/main.7b9daa35.chunk.js"></script>
Run Code Online (Sandbox Code Playgroud)
这有效,但我想将所有 3 个文件合并为一个文件
我已经尝试过filesmerge.com来合并 JS 文件,但这会导致在引用单个文件时出错:
output.min.js:1 Uncaught TypeError: (intermediate value)(...) is not a function
at output.min.js:1
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用jscompress.com 进行组合,虽然这不会产生任何错误,但不会呈现反应根元素
我也试过在 create-react-app 存储库中建议的这个解决方案不起作用。不产生错误但不呈现反应元素(页面保持空白)
Mat*_*tta 25
简而言之:这是可能的,但不是很实用。为什么?随着单个捆绑文件的增长,您的应用程序将不再具有性能。单个大请求,而不是较小的请求,将不可避免地导致 Web 性能变慢并可能浪费带宽。
同样,我强烈建议不要将 CRA 用于您的单捆绑应用程序。虽然 CRA 是一个很棒的样板,它面向 DX 友好的 React with Webpack 方法,但它确实包含许多可能不必要地与您的应用程序捆绑在一起的依赖项。
因此,我强烈建议建立自己的WebPack配置(这是用的帮助相对简单的WebPack文档与联合CRA的WebPack票据)或考虑类似的替代品汇总,一饮而尽,微丛,或browserify仅举几例。
随着 CRA 的更新,以下程序不可避免地会过时。因此,使用这些说明的风险由您自己承担。
CRA 版本:v4.0.3
您首先要弹出:yarn eject或者npm run eject- 您可能可以使用一些 3rd 方包来覆盖而不弹出,但我会让您自行解决。
然后,您需要转到该config/webpack.config.js文件并更改以下内容:
isEnvProduction && shouldInlineRuntimeChunk && new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime-.+[.]js/])index.htmlfilename: "static/css/bundle.min.css"filename: "static/js/bundle.min.js"输出到用于生产单一的文件名。runtimeChunk: false为避免创建runtime.chunk.js文件new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 })以将输出的块限制为 1CRA 版本:v4.0.3(演示更新至 2021 年 5 月 25 日)
工作仓库:https : //github.com/mattcarlotta/cra-single-bundle
随着开发世界采用 Webpack 5,此配置将不可避免地过时
小智 5
马特的解决方案是我目前得到的最接近的解决方案。经过几个小时的搜索,我找到了一种强制Webpack输出一个js文件的方法。只需将其放在这里以供将来参考,否则任何人都会遇到此问题。
plugins: [
isEnvProduction &&
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1
}),
...
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11226 次 |
| 最近记录: |