Я работаю над проектом по использованию Flutter web, и размер js увеличивается, когда я добавляю функции, что является нормой. Я смотрел на отложенный импорт для Flutter и попытался найти разделенные файлы как
Я запустил flutter run -d chrome
, который работал нормально, как Я узнал, что deferred игнорируется в отладочной сборке, и когда я запускал пакет http-server
npm, ничего не происходило, даже если смотреть на сетевой запрос, он запрашивал файлы деталей, но ничего не отображалось на экране и даже не было ошибок в консоли. Я знаю, что Flutter Web недавно перешел на бета-версию, поэтому возможны оптимизации, такие как специальное уменьшение размера main.dart. js, но это должно работать в соответствии с do c.
Код
main.dart. js
import 'package:flutter/material.dart';
import 'package:split_test/page1.dart' deferred as page1;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
child: page1.Page1(),
),
),
);
}
}
page1.dart
import 'package:flutter/material.dart';
import 'package:split_test/page2.dart' deferred as pag2;
class Page1 extends StatelessWidget {
const Page1({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Column(
children: <Widget>[
Text('Page1'),
GestureDetector(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => pag2.Page2(),
),
),
child: Text('Go to page 2'),
)
],
),
),
);
}
}
page2.dart. js
import 'package:flutter/material.dart';
class Page2 extends StatelessWidget {
const Page2({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: Column(
children: <Widget>[
Text('Page2'),
GestureDetector(
onTap: () => Navigator.pop(context),
child: Text('<- Back'),
)
],
),
),
),
);
}
}
Спасибо за вашу помощь. Я смотрел на этот выпуск .