Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f262575

Browse files
authored
Fix minify logic (#169607)
It's meant to be ignored unless explicitly set. Introduced in flutter/flutter@cb3150f
1 parent f5f9f35 commit f262575

3 files changed

Lines changed: 20 additions & 8 deletions

File tree

packages/flutter_tools/lib/src/commands/build_web.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ class BuildWebCommand extends BuildSubCommand {
175175
);
176176

177177
final bool sourceMaps = boolArg('source-maps');
178-
final bool minify = boolArg('minify');
178+
final bool? minify = argResults!.wasParsed('minify') ? boolArg('minify') : null;
179179

180180
final List<WebCompilerConfig> compilerConfigs;
181181

packages/flutter_tools/lib/src/web/compiler_config.dart

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ sealed class WebCompilerConfig {
3838
/// Returns which target this compiler outputs (js or wasm)
3939
CompileTarget get compileTarget;
4040
final WebRendererMode renderer;
41+
List<String> toCommandOptions(BuildMode buildMode);
4142

4243
String get buildKey;
4344

@@ -112,6 +113,7 @@ class JsCompilerConfig extends WebCompilerConfig {
112113
/// Arguments to use in the full JS compile, but not CFE-only.
113114
///
114115
/// Includes the contents of [toSharedCommandOptions].
116+
@override
115117
List<String> toCommandOptions(BuildMode buildMode) => <String>[
116118
if (minify ?? buildMode == BuildMode.release) '--minify' else '--no-minify',
117119
...toSharedCommandOptions(buildMode),
@@ -130,7 +132,7 @@ class JsCompilerConfig extends WebCompilerConfig {
130132
'nativeNullAssertions': nativeNullAssertions,
131133
'noFrequencyBasedMinification': noFrequencyBasedMinification,
132134
'minify': minify,
133-
'sourceMaps': sourceMaps,
135+
WebCompilerConfig.kSourceMapsEnabled: sourceMaps,
134136
};
135137
return jsonEncode(settings);
136138
}
@@ -167,6 +169,7 @@ class WasmCompilerConfig extends WebCompilerConfig {
167169
BuildMode.jitRelease => throw ArgumentError('Invalid build mode for web'),
168170
};
169171

172+
@override
170173
List<String> toCommandOptions(BuildMode buildMode) {
171174
final bool stripSymbols = buildMode == BuildMode.release && stripWasm;
172175
return <String>[
@@ -181,8 +184,8 @@ class WasmCompilerConfig extends WebCompilerConfig {
181184
String get buildKey {
182185
final Map<String, dynamic> settings = <String, dynamic>{
183186
...super._buildKeyMap,
184-
'stripWasm': stripWasm,
185-
'sourceMaps': sourceMaps,
187+
kStripWasm: stripWasm,
188+
WebCompilerConfig.kSourceMapsEnabled: sourceMaps,
186189
};
187190
return jsonEncode(settings);
188191
}

packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ void main() {
400400
);
401401

402402
testUsingContext(
403-
'Defaults to web renderer canvaskit mode when no option is specified',
403+
'Defaults to web renderer canvaskit and minify mode when no option is specified',
404404
() async {
405405
final TestWebBuildCommand buildCommand = TestWebBuildCommand(fileSystem: fileSystem);
406406
final CommandRunner<void> runner = createTestCommandRunner(buildCommand);
@@ -419,8 +419,17 @@ void main() {
419419
) {
420420
expect(target, isA<WebServiceWorker>());
421421
final List<WebCompilerConfig> configs = (target as WebServiceWorker).compileConfigs;
422-
expect(configs.length, 1);
423-
expect(configs.first.renderer, WebRendererMode.canvaskit);
422+
expect(configs, hasLength(1));
423+
final WebCompilerConfig config = configs.single;
424+
expect(config.renderer, WebRendererMode.canvaskit);
425+
expect(config.compileTarget, CompileTarget.js);
426+
final List<String> options = config.toCommandOptions(BuildMode.release);
427+
expect(options, <String>[
428+
'--minify',
429+
'--native-null-assertions',
430+
'--no-source-maps',
431+
'-O4',
432+
]);
424433
}),
425434
},
426435
);
@@ -445,7 +454,7 @@ void main() {
445454
) {
446455
expect(target, isA<WebServiceWorker>());
447456
final List<WebCompilerConfig> configs = (target as WebServiceWorker).compileConfigs;
448-
expect(configs.length, 2);
457+
expect(configs, hasLength(2));
449458
expect(configs[0].renderer, WebRendererMode.skwasm);
450459
expect(configs[0].compileTarget, CompileTarget.wasm);
451460
expect(configs[1].renderer, WebRendererMode.canvaskit);

0 commit comments

Comments
 (0)