From 074114b85a80084d4656c63403c5f247b3cc2a28 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Fri, 8 Mar 2024 10:56:18 -0800 Subject: [PATCH] Copy over source maps from dart2js target when they are enabled. (#144832) This fixes https://github.com/flutter/flutter/issues/143703 We need to make sure that when source maps are enabled for the dart2js target, it advertises the sourcemap file as one of its outputs so that the web release bundle can copy it over. --- packages/flutter_tools/lib/src/build_system/targets/web.dart | 1 + .../test/general.shard/build_system/targets/web_test.dart | 3 +++ 2 files changed, 4 insertions(+) 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 f9c240f34b0..d3423e73808 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/web.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/web.dart @@ -231,6 +231,7 @@ class Dart2JSTarget extends Dart2WebTarget { @override List get buildFiles => [ 'main.dart.js', + if (compilerConfig.sourceMaps) 'main.dart.js.map', ]; } diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart index 4b39bf6e48d..46c4e1cc7bc 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart @@ -182,6 +182,7 @@ void main() { webResources.childFile('foo.txt') .writeAsStringSync('A'); environment.buildDir.childFile('main.dart.js').createSync(); + environment.buildDir.childFile('main.dart.js.map').createSync(); await WebReleaseBundle([ const JsCompilerConfig() @@ -191,6 +192,8 @@ void main() { .readAsStringSync(), 'A'); expect(environment.outputDir.childFile('main.dart.js') .existsSync(), true); + expect(environment.outputDir.childFile('main.dart.js.map') + .existsSync(), true); expect(environment.outputDir.childDirectory('assets') .childFile('AssetManifest.bin.json').existsSync(), true);