Have you checked for an existing issue?
Flutter Quill Version
11.5.0
Steps to Reproduce
- Add
flutter_quill_extensions: ^11.0.0 to a Flutter project
- Run
dart run build_runner build
- Build fails with the above error
Expected results
build_runner should complete successfully without errors from flutter_quill_extensions.
Actual results
flutter_quill_extensions|lib/src/common/utils/dart_ui/dart_ui_real.dart build_modules:module_library (lazy)
E Invalid argument(s): Unsupported conditional import of `dart:ui` found in flutter_quill_extensions|lib/src/common/utils/dart_ui/dart_ui_real.dart:
export 'dart:ui' if (dart.library.js_interop) 'dart:ui_web';
This environment does not support direct conditional imports of `dart:` libraries. Instead you must create a separate library which unconditionally imports (or exports) the `dart:` library that you want to use, and conditionally import (or export) that library.
Full Stack Trace
#0 ModuleLibrary._checkValidConditionalImport (package:build_modules/src/module_library.dart:151:7)
#1 new ModuleLibrary._fromCompilationUnit (package:build_modules/src/module_library.dart:101:11)
#2 ModuleLibrary.fromSource (package:build_modules/src/module_library.dart:183:26)
#3 ModuleLibraryBuilder.build (package:build_modules/src/module_library_builder.dart:32:35)
<asynchronous suspension>
#4 runBuilder.buildForInput (package:build_runner/src/build/run_builder.dart:85:7)
<asynchronous suspension>
#5 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#6 BuildLogLogger.scopeLogAsync.<anonymous closure> (package:build_runner/src/logging/build_log_logger.dart:58:13)
<asynchronous suspension>
Additional Context
build_runner fails with "Unsupported conditional import of dart:ui" in dart_ui_real.dart
Description
Running build_runner fails due to an unsupported conditional import pattern in flutter_quill_extensions. The file lib/src/common/utils/dart_ui/dart_ui_real.dart uses a conditional export that build_modules does not support.
Error Message
flutter_quill_extensions|lib/src/common/utils/dart_ui/dart_ui_real.dart build_modules:module_library (lazy)
E Invalid argument(s): Unsupported conditional import of `dart:ui` found in flutter_quill_extensions|lib/src/common/utils/dart_ui/dart_ui_real.dart:
export 'dart:ui' if (dart.library.js_interop) 'dart:ui_web';
This environment does not support direct conditional imports of `dart:` libraries. Instead you must create a separate library which unconditionally imports (or exports) the `dart:` library that you want to use, and conditionally import (or export) that library.
Full Stack Trace
#0 ModuleLibrary._checkValidConditionalImport (package:build_modules/src/module_library.dart:151:7)
#1 new ModuleLibrary._fromCompilationUnit (package:build_modules/src/module_library.dart:101:11)
#2 ModuleLibrary.fromSource (package:build_modules/src/module_library.dart:183:26)
#3 ModuleLibraryBuilder.build (package:build_modules/src/module_library_builder.dart:32:35)
<asynchronous suspension>
#4 runBuilder.buildForInput (package:build_runner/src/build/run_builder.dart:85:7)
<asynchronous suspension>
#5 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#6 BuildLogLogger.scopeLogAsync.<anonymous closure> (package:build_runner/src/logging/build_log_logger.dart:58:13)
<asynchronous suspension>
Steps to Reproduce
- Add
flutter_quill_extensions: ^11.0.0 to a Flutter project
- Run
dart run build_runner build
- Build fails with the above error
Expected Behavior
build_runner should complete successfully without errors from flutter_quill_extensions.
Suggested Fix
The conditional export in dart_ui_real.dart:
export 'dart:ui' if (dart.library.js_interop) 'dart:ui_web';
Should be refactored to use an intermediate library pattern, e.g.:
// dart_ui_native.dart
export 'dart:ui';
// dart_ui_web.dart
export 'dart:ui_web';
// dart_ui_real.dart
export 'dart_ui_native.dart' if (dart.library.js_interop) 'dart_ui_web.dart';
Environment
Flutter Doctor Output
[✓] Flutter (Channel stable, 3.38.6, on macOS 26.2 25C56 darwin-arm64, locale en-US)
• Flutter version 3.38.6 on channel stable at /Users/r0/fvm/versions/3.38.6
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 8b87286849 (3 weeks ago), 2026-01-08 10:49:17 -0800
• Engine revision 78fc3012e4
• Dart version 3.10.7
• DevTools version 2.51.1
Package Versions
| Package |
Version |
flutter_quill |
11.5.0 |
flutter_quill_extensions |
11.0.0 |
build_runner |
2.10.5 |
build_modules |
5.1.6 |
| Flutter |
3.38.6 (stable) |
| Dart |
3.10.7 |
Workaround
Currently, there is no workaround other than not using build_runner with this package, which is not feasible for projects that rely on code generation (e.g., freezed, json_serializable, riverpod_generator).
Related
- This is likely related to how
build_modules validates conditional imports of dart: libraries
- The pattern used works fine at runtime but fails during
build_runner analysis
Have you checked for an existing issue?
Flutter Quill Version
11.5.0
Steps to Reproduce
flutter_quill_extensions: ^11.0.0to a Flutter projectdart run build_runner buildExpected results
build_runnershould complete successfully without errors fromflutter_quill_extensions.Actual results
Full Stack Trace
Additional Context
build_runnerfails with "Unsupported conditional import ofdart:ui" indart_ui_real.dartDescription
Running
build_runnerfails due to an unsupported conditional import pattern influtter_quill_extensions. The filelib/src/common/utils/dart_ui/dart_ui_real.dartuses a conditional export thatbuild_modulesdoes not support.Error Message
Full Stack Trace
Steps to Reproduce
flutter_quill_extensions: ^11.0.0to a Flutter projectdart run build_runner buildExpected Behavior
build_runnershould complete successfully without errors fromflutter_quill_extensions.Suggested Fix
The conditional export in
dart_ui_real.dart:Should be refactored to use an intermediate library pattern, e.g.:
Environment
Flutter Doctor Output
Package Versions
flutter_quillflutter_quill_extensionsbuild_runnerbuild_modulesWorkaround
Currently, there is no workaround other than not using
build_runnerwith this package, which is not feasible for projects that rely on code generation (e.g.,freezed,json_serializable,riverpod_generator).Related
build_modulesvalidates conditional imports ofdart:librariesbuild_runneranalysis