Here is the build.dart file with basic SASS support:
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"}}]'); } } } } }
source share