You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter非Web构建中排除间接引入的包资源?

解决Flutter非Web构建时排除flutter_opencc_ffi_web的JS资源问题

解决思路

Flutter自带的build.yaml对间接依赖包的资源排除支持有限,之前的配置没生效很正常。要搞定非Web构建时去掉那1MB JS资源,试试下面几个方法:

1. 只在Web平台引入这个依赖

既然这是个Web专属的包,非Web平台根本没必要引入它。直接改项目的pubspec.yaml,把依赖改成条件加载:

dependencies:
  # 其他通用依赖照写
flutter_opencc_ffi_web:
  # 这里填你的包地址,比如pub版本或者git地址
  version: ^x.x.x
  conditional:
    platforms:
      web:
        enabled: true
      android:
        enabled: false
      ios:
        enabled: false
      linux:
        enabled: false
      windows:
        enabled: false
      macos:
        enabled: false

如果是间接依赖(比如某个别的包引了它),就用dependency_overrides强制控制:

dependency_overrides:
  flutter_opencc_ffi_web:
    conditional:
      platforms:
        web:
          enabled: true
        default:
          enabled: false

2. 用Flutter资源配置文件过滤(备选)

要是必须保留依赖但只想删资源,Flutter 3.10以上版本可以用flutter_assets.yaml来过滤。在项目根目录新建这个文件:

flutter:
  assets:
    exclude:
      - packages/flutter_opencc_ffi_web/assets/opencc/**

构建非Web包的时候指定这个配置:

flutter build apk --dart-define=FLUTTER_ASSETS_CONFIG=flutter_assets.yaml

(把apk换成你要构建的平台,比如ios、windows等)

3. 修正build.yaml的写法

之前的build.yaml配置不对,针对依赖包的资源排除要配合asset_builder来写,而且要分平台配置:

targets:
  $default:
    sources:
      exclude:
        - assets/packages/flutter_opencc_ffi_web/assets/opencc/**
    builders:
      flutter_web_builders|asset_builder:
        options:
          exclude:
            - packages/flutter_opencc_ffi_web/assets/opencc/**
  # 给各个非Web平台单独加排除规则
  android:
    dependencies:
      flutter_opencc_ffi_web:
        exclude:
          - assets/opencc/**
  ios:
    dependencies:
      flutter_opencc_ffi_web:
        exclude:
          - assets/opencc/**
  linux:
    dependencies:
      flutter_opencc_ffi_web:
        exclude:
          - assets/opencc/**

怎么确认生效

构建完非Web包后,去产物的assets目录里看看,packages/flutter_opencc_ffi_web/assets/opencc下面的JS文件没了就说明成了。

内容的提问来源于stack exchange,提问作者Brave Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:55:36