【问题标题】:Very slow building time of Webpack on production, fast on developmentWebpack 在生产中的构建时间非常慢,在开发中快速
【发布时间】:2018-04-28 10:25:41
【问题描述】:

切换到 webpack(分别为 Rails + Webpacker gem)后,在生产服务器上编译捆绑包的时间是开发时的 10 倍以上。

生产机器优于开发,所需模块相同。

【问题讨论】:

    标签: webpack dev-to-production webpacker


    【解决方案1】:

    我们终于发现 resolve-url-loader 模块 (https://www.npmjs.com/package/resolve-url-loader) + 包含许多上传图片的文件夹(到单独的文件夹中)是刹车。

    resolve-url-loader 在运行 webpack 的整个文件夹中搜索 CSS url('my_image')。子文件夹之一是百万子文件夹文件夹。所以loader尝试在每个角落搜索。

    我没有找到从配置搜索中排除此文件夹的任何选项。 但!如果加载程序在文件夹中找到文件package.jsonbower.json,它将停止搜索。所以解决方案是touch million-subfolders-folder/package.json。 它并不完美,加载程序仍然为每个尚未创建的图像搜索文件夹内容。但只是一次,而不是搜索数百万个子文件夹。

    【讨论】:

    • 在您使用“resolve-url-loader”的配置中,您应该能够添加文件夹排除项。 webpack.js.org/configuration/module/#rule-exclude
    • 我试过了,但没有成功。也许我做错了什么。
    • 有点复杂,需要修改Webpacker gem的默认配置。
    • @Foton 我可以问你,你如何分析 webpack 编译以找出问题出在那个模块上?我们也有这样的问题,但不知道是怎么回事。
    • 来自 mastermind @virus,谁发现了它:这个特殊的问题是由常见的 linux 实用程序发现的。 iotop 已确定,webpacker 编译会产生大量 iops。我们使用strace 来查找系统调用目录列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多