-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Have you checked for an existing issue?
- I have searched the existing issues
Flutter Quill Version
11.5.0
Steps to Reproduce
- Add
flutter_quill_extensions: ^11.0.0to 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.0to 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_modulesvalidates conditional imports ofdart:libraries - The pattern used works fine at runtime but fails during
build_runneranalysis
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working