Как использовать SASS в редакторе Dart

У кого-нибудь есть готовое решение для интеграции SASS или другого препроцессора CSS в редактор Dart? Кажется, требуется собственный build.dart, который я бы скорее скопировал, чем код. Спасибо.


person Jonathan Edwards    schedule 16.12.2013    source источник


Ответы (3)


Я наткнулся на это несколько дней назад

Интеграция Sass для pub

person Günter Zöchbauer    schedule 17.12.2013
comment
Большое спасибо. Но я не думаю, что это будет запускаться автоматически во время локального тестирования в редакторе Dart. - person Jonathan Edwards; 17.12.2013
comment
AFAIR это работает со сборкой паба, когда он настроен как преобразователь в pubspec.yaml - person Günter Zöchbauer; 17.12.2013
comment
Правильно, и сборка паба не запускается автоматически при запуске редактора. - person Jonathan Edwards; 17.12.2013
comment
Насколько я знаю, это был самый близкий к вашему вопросу :-| - person Günter Zöchbauer; 17.12.2013
comment
Ant для Dart было бы неплохо :/ - person Nestor Ledon; 17.12.2013
comment
Если кому-то интересно, документы для build.dart находятся здесь. Вероятно, нужно всего лишь изменить несколько строк кода из примера. Быстрый поиск в Google — сообщение в блоге от того, кто это сделал. - person Greg Lowe; 19.12.2013

Вот файл build.dart с базовой поддержкой SASS:

import 'dart:io';

void main(List<String> args) {
  for (String arg in args) {
    if (arg.startsWith('--changed=')) {
      String file = arg.substring('--changed='.length);
      if (file.endsWith('.scss')) {
        var result = Process.runSync('sass',
            [ '--line-numbers', file,
              file.substring(0, file.length - '.scss'.length) + '.css']);
        if (result.exitCode != 0) {
          // report error (SASS seems to only report first error)
          // split error lines
          var lines = result.stderr.split('\n');
          // escape quotes in error message on first line
          var error = lines[0].replaceAll('"', r'\"');
          // extract line number from second line
          var numMatch = new RegExp(r'\d+').firstMatch(lines[1]);
          var lineNum = numMatch == null ? 1 : num.parse(numMatch.group(0));
          // Report error via JSON
          print('[{"method":"error","params":{"file":"$file","line":$lineNum,"message":"$error"}}]');
        }
      }
    }
  }
}
person Jonathan Edwards    schedule 28.02.2014
comment
Включено ли это в пакет sass pub? - person Steven Roose; 25.08.2015

Во время разработки (с помощью Dart Editor или другого редактора...) просто используйте sass так, как он предназначен для использования, в вашем проекте каталога:

sass -w .

Поместите файлы, сгенерированные CSS, в список игнорирования вашей системы управления исходным кодом (он же .gitignore для git).

А для компиляции dart2js используйте пакет sass pub: http://pub.dartlang.org/packages/sass< /а>

person mlorber    schedule 04.06.2014
comment
Dart Editor — это среда разработки Eclipse, которая автоматически создает и запускает программы Dart. Вопрос в том, как заставить его автоматически использовать SASS в своей сборке. Предположительно, в редактор только что была добавлена ​​поддержка pub serve, так что это может стать возможным в ближайшее время. - person Jonathan Edwards; 05.06.2014
comment
Что ты пропустил ? Я использую пакет pub sass для своей окончательной сборки (с pub), и во время локальной разработки мне не нужно, чтобы sass обрабатывался редактором Dart, поскольку sass --watch компилирует файлы на лету. - person mlorber; 05.06.2014
comment
Часто Chrome запускается до того, как sass-watch успевает восстановить файл .css. - person Jonathan Edwards; 06.06.2014