Как заставить 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']);
}
Другие вопросы по тегам