Anyone have a canned solution for integrating SASS or another CSS preprocessor into the Dart editor? Seems to require a custom build.dart, which I would rather copy than code. Thanks.
3 Answers
I stumbled upon this a few days ago
6 Comments
Jonathan Edwards
Great, thanks. But I don't think this will run automatically during local testing within the Dart Editor.
Günter Zöchbauer
AFAIR this runs with pub build when it is configured as transformer in pubspec.yaml
Jonathan Edwards
Right, and pub build is not run automatically by Editor launches.
Günter Zöchbauer
It was the closest I know to your question :-|
|
Here is a build.dart file with basic support for 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"}}]');
}
}
}
}
}
1 Comment
Steven Roose
Is this included in the sass pub package?
During development (with Dart Editor or another editor...), just use sass the way it's meant to be used, in your directory project :
sass -w .
Put the CSS generated files in the ignore list of your source code management system (aka .gitignore for git).
And for dart2js compilation, use the sass pub package : http://pub.dartlang.org/packages/sass
3 Comments
Jonathan Edwards
The Dart Editor is an Eclipse IDE that automatically builds and launches Dart programs. The question is about how to get it to automatically use SASS in its build. Supposedly pub serve support has just been added to the Editor, so this may become possible shortly.
mlorber
What do you miss ? I use the pub sass package for my final build (with pub), and during local development I do not need to have sass handled by Dart Editor since sass --watch compile files on the fly
Jonathan Edwards
Often Chrome gets run before sass -watch has a chance to rebuild the .css file.