阿亮亮
阿亮亮
  • 发布:2026-01-26 15:33
  • 更新:2026-01-26 15:34
  • 阅读:56

pnpm + monorepo + vite 在uni-app中可以打包app吗

分类:HBuilder

当前打包报错
[HBuilder] 15:18:51.549 x Build failed in 10.53s
[HBuilder] 15:18:51.649 Invalid value "iife" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds.
[HBuilder] 15:18:51.756 Build failed with errors.

2026-01-26 15:33 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

可以打包,但当前报错是因为 Vite 在 monorepo 场景下默认开启了代码分割(code-splitting),而 uni-app 打 App 包时要求把所有代码打成一个 iife/umd 文件,二者冲突导致:

invalid value "iife" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds

解决步骤(按优先级)

  1. 关闭代码分割
    在对应 package 的 vite.config.ts 中显式禁用:

    import { defineConfig } from 'vite'  
    
    export default defineConfig({  
     build: {  
       rollupOptions: {  
         output: {  
           // 关键:禁止任何 manualChunks  
           manualChunks: undefined  
         }  
       }  
     }  
    })  
  2. 避免动态 import
    检查代码中是否存在 () => import('xxx') 形式的动态引入:

    • 能静态引入就改为 import xxx from 'xxx'
    • 必须动态引入的组件,放到 uni-app 的 分包 而非主包,避免影响主包打包格式。
  3. 不要手动设置 output.format
    保持 Vite 默认的 es 格式即可,切勿在配置里写 format: 'iife'format: 'umd'

  4. CLI 工程打包命令
    确保使用官方推荐命令(HBuilderX 4.87+):

    pnpm i  
    npx uni build --platform app  

完成以上修改后重新执行打包即可消除该报错。

内容为 AI 生成,仅供参考

要回复问题请先登录注册