92%的块资产优化 - webpack

时间:2018-03-09 00:30:48

标签: javascript reactjs webpack webpack-2 laravel-mix

似乎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控制台中显示)?

7 个答案:

答案 0 :(得分:3)

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

export "NODE_OPTIONS=--max_old_space_size=2000"

答案 1 :(得分:2)

我做了一个yarn cache cleaning,它解决了我在Google云上的Ubuntu 16.04主机上的问题“ 92%块资产优化TerserPlugin”。

不确定它是否可以在您的计算机上运行

yarn cache clean

我在第二台计算机上遇到此问题,并且该计算机需要重新启动。

sudo reboot

答案 2 :(得分:2)

运行“ ng serve --sourceMap = false”

答案 3 :(得分:1)

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

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

https://github.com/amireh/happypack

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

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

报告回来,让我知道它是怎么回事。

答案 4 :(得分:0)

在执行ng build命令期间,我遇到了同样的问题。

我遇到以下错误:

  

92%的大宗资产优化被杀死

该过程已停止在92%,但以下命令对我来说很好用。

尝试以下方法:

pm2 stop all

ng build

pm2 start all

我正在使用pm2作为流程经理。

我希望它也对您有用。

答案 5 :(得分:0)

对我来说,92%的大块资产将永远被占用,因此我决定让它整夜运行,之后我收到以下错误:

致命错误:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足

解决方案:核心问题是该节点的默认内存限制为1.76 GB。如果需要更多功能,则在启动节点进程时需要设置选项--max_old_space_size = {desiredSize}。

尝试增加内存限制:

https://www.npmjs.com/package/increase-memory-limit

答案 6 :(得分:0)

任何人都可以使用在Windows 10上使用带有Angular CLI的节点的 ;

确保CLI写入的目录具有适当的写入权限。 尝试写入c:/ Users / UserName / Documents / SoultionDir

时遇到了这个确切的问题

对我来说,这可能与公司使用政策有关。

92%块资产优化TerserPlugin ”消息出现在即将写入文件夹之前。如果权限错误,它将无提示地崩溃并永久挂起。 使用管理命令提示符将目录更改为您知道具有正确写入权限的目录。