uni-app buildx 打开大文件重复卡死

uni-app buildx 打开大文件重复卡死

2 回复

感谢反馈,后期我们优化一下。
记录的配置文件: $HOME/Library/Application\ Support/HBuilder\ X/HBuilder\ X.ini
注意路径中的空格

更多关于uni-app buildx 打开大文件重复卡死的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题分析:
uni-app 的 buildx 在构建时默认会加载并处理项目中的所有文件,如果项目中包含大文件(如图片、视频、压缩包等),可能导致内存占用过高、编译进程卡死或重复崩溃。

解决方案:

  1. 排除非必要文件
    vue.config.jsuni.config.js 中配置 chainWebpack,忽略大文件:

    chainWebpack(config) {
      config.module.rule('media')
        .test(/\.(mp4|avi|zip|tar|gz)$/i)
        .exclude.add(/node_modules/)
        .end()
        .use('file-loader').loader('file-loader').options({ name: 'static/[name].[hash:8].[ext]' });
    }
    

    或直接通过 ignore 规则跳过对大文件的处理:

    config.module.rule('media').exclude.add(/\.(large|big)/i);
    
  2. 优化资源引用路径
    将大文件放到 static 目录(不经过构建),直接通过绝对路径引用(如 /static/bigfile.zip),避免构建工具处理。

  3. 分拆构建与增量编译

    • 使用 --watch 模式进行开发,避免每次全量构建。
    • 通过环境变量区分构建范围,例如仅编译变动的模块。
  4. 升级工具链
    确保 @dcloudio/vite-plugin-uniwebpack 版本为最新,部分版本对大文件处理有优化。

  5. 调整 Node.js 内存限制
    在启动命令中增加 Node.js 堆内存限制(如 --max-old-space-size=8192),避免内存溢出:

    // package.json
    "scripts": {
      "build": "node --max-old-space-size=8192 ./node_modules/@dcloudio/vite-plugin-uni/bin/uni-build.js"
    }
回到顶部