似乎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控制台中显示)?
答案 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}。
尝试增加内存限制:
答案 6 :(得分:0)
任何人都可以使用在Windows 10上使用带有Angular CLI的节点的 ;
确保CLI写入的目录具有适当的写入权限。 尝试写入c:/ Users / UserName / Documents / SoultionDir
时遇到了这个确切的问题对我来说,这可能与公司使用政策有关。
“ 92%块资产优化TerserPlugin ”消息出现在即将写入文件夹之前。如果权限错误,它将无提示地崩溃并永久挂起。 使用管理命令提示符将目录更改为您知道具有正确写入权限的目录。