92% 块资产优化 - webpack

IT技术 javascript reactjs webpack webpack-2 laravel-mix
2021-05-10 13:11:14

似乎 webpack 卡在 92% 的块资产优化上大约 30 多秒,以显示一个简单的 js/css 更改。对于任何理智的人来说,这太长了,无法坐等他们一生中的大部分时间来看到应该立即呈现的东西。

我们处于开发模式(所以我们需要源映射,这会增加延迟)但它仍然不应超过 30 秒。此外,我们没有使用 uglify(我在 GitHub 上看到它占用了大量时间)。

我们如何才能使构建时间接近即时,或者比现在快得多?

更新

这是laravel-mix文件:

let mix = require('laravel-mix');

mix.react('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css')
   .options({
     processCssUrls: false
   });

mix.webpackConfig({
    // Note: First build will always be slower regardless
    // Here we're talking about rebuild time

    // If commented out, rebuild is ~6 secs
    // devtool: "inline-source-map",

    // If not commented out, rebuild is 30+ secs
    devtool: "inline-source-map",
});

我发现inline-source-map它是最快调试的最佳选择,因为它提供了关于在源代码中修复哪一行错误的最详细信息,非常非常直接地说明了在哪里修复。我发现其他类型相比之下更加神秘,并且没有指示在源代码中修复哪个行号,因此调试需要更长的时间。

你们是怎么做的?有没有一种方法可以真正快速地重建,同时仍然能够使用源代码中的错误行号进行调试以修复它(显示在 chrome devtools 控制台中)?

4个回答

我在远程运行构建时也遇到了类似的问题,因此,在添加以下命令后,在 jenkin 中,问题为我解决了。

export "NODE_OPTIONS=--max_old_space_size=2000"

ng serve --sourceMap=false

我做了一个纱线缓存清理,它解决了我在谷歌云上的 Ubuntu 16.04 主机上的“92% 块资产优化 TerserPlugin”问题。

不确定它是否适用于您的机器

yarn cache clean

我在第二台机器上有这个问题,这台机器需要重新启动。

sudo reboot

我使用以下组合取得了巨大的成功:

https://github.com/mzgoddard/hard-source-webpack-plugin

https://github.com/amireh/happypack

HardSourceWebpackPlugin 是 webpack 的一个插件,用于为module提供中间缓存步骤。为了查看结果,您需要使用此插件运行 webpack 两次:第一次构建将花费正常的时间。第二个构建将显着更快。

HappyPack 通过并行转换文件使初始 webpack 构建更快。

回来报告并告诉我进展如何。