2013-06-24 4 views
0

Я использую web_ui и всякий раз, когда я меняю файл CSS в web/css/, он не будет скомпилирован, если я не изменю файл web/index.html. Думаю, это потому, что только файл «web/index.html» указан как точка входа в build.dart.Как сделать web_ui компилировать файлы css автоматически

Но добавление таблицы стилей в список точек входа не помогло.

Есть ли способ автоматически копировать файлы CSS каждый раз, когда они меняются без необходимости редактировать файлы .html?

ответ

2

Имейте в виду, что вы можете редактировать любые файлы .dart или .html и компилятор будет запущен; он не должен быть файлом точки входа.

Autocompilation из CSS-файлов на изменении может быть достигнут путем передачи компилятора full флага:

build(['--machine', '--full'], ['web/index.html']); 

Флага machine сообщает компилятор для печати сообщений на консоль Dart Editor. Полный список флагов см. В Build.dart and the Dart Editor Build System.

Этот метод означает, что каждый раз, когда файл изменяется, весь проект будет перестроен вместо обычного поэтапного подхода. Если у вас большой проект, это может занять некоторое время. Ниже представлен более подробный файл сборки, в котором используется инкрементная компиляция, и только восстанавливается весь проект, если был изменен файл 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']); 
} 
+0

Работает как очарование. благодаря – enyo