Как заставить web_ui автоматически компилировать css файлы
Я использую web_ui и каждый раз, когда я изменяю файл CSS в web/css/
он не будет скомпилирован, пока я не изменю web/index.html
файл. Я предполагаю, что это потому, что только файл 'web/index.html' указан в качестве точки входа в build.dart.
Но добавление таблицы стилей в список точек входа не сработало.
Есть ли способ автоматически компилировать файлы CSS каждый раз, когда они меняются, без необходимости редактировать .html
файлы?
1 ответ
Имейте в виду, что вы можете редактировать любые .dart
или же .html
файл и компилятор запустятся; это не должен быть файл точки входа.
Автокомпиляция CSS-файлов при изменении может быть достигнута путем передачи компилятору full
флаг:
build(['--machine', '--full'], ['web/index.html']);
machine
flag указывает компилятору печатать сообщения в консоли Dart Editor. Для полного списка флагов смотрите Build.dart и систему сборки Dart Editor.
Этот метод означает, что при каждом изменении файла весь ваш проект будет перестраиваться вместо обычного пошагового подхода. Если у вас большой проект, это может занять некоторое время. Вот более полный файл сборки, который использует преимущества инкрементальной компиляции и перестраивает весь проект, только если файл CSS был изменен:
List<String> args = new Options().arguments;
bool fullRebuild = false;
for (String arg in args) {
if (arg.startsWith('--changed=') && arg.endsWith('.css')) {
fullRebuild = true;
}
}
if(fullRebuild) {
build(['--machine', '--full'], ['web/index.html']);
} else {
build(args, ['web/index.html']);
}