Ensure plugin registrants are generated in build_web (#41906)
diff --git a/packages/flutter_tools/lib/src/build_system/targets/web.dart b/packages/flutter_tools/lib/src/build_system/targets/web.dart
index d097dcb..ef5a7c8 100644
--- a/packages/flutter_tools/lib/src/build_system/targets/web.dart
+++ b/packages/flutter_tools/lib/src/build_system/targets/web.dart
@@ -55,12 +55,16 @@
String contents;
if (hasPlugins) {
+ final String generatedPath = environment.projectDir
+ .childDirectory('lib')
+ .childFile('generated_plugin_registrant.dart')
+ .absolute.uri.toString();
contents = '''
import 'dart:ui' as ui;
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
-import 'generated_plugin_registrant.dart';
+import '$generatedPath';
import "$import" as entrypoint;
Future<void> main() async {
diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart
index c924c3e..7644f63 100644
--- a/packages/flutter_tools/lib/src/web/compile.dart
+++ b/packages/flutter_tools/lib/src/web/compile.dart
@@ -27,9 +27,10 @@
}
final bool hasWebPlugins = findPlugins(flutterProject)
.any((Plugin p) => p.platforms.containsKey(WebPlugin.kConfigKey));
+ await injectPlugins(flutterProject, checkProjects: true);
final Status status = logger.startProgress('Compiling $target for the Web...', timeout: null);
final Stopwatch sw = Stopwatch()..start();
- final BuildResult result = await const BuildSystem().build(const WebReleaseBundle(), Environment(
+ final BuildResult result = await buildSystem.build(const WebReleaseBundle(), Environment(
outputDir: fs.directory(getWebBuildDirectory()),
projectDir: fs.currentDirectory,
buildDir: flutterProject.directory