Revert "Revert "Merge pull request +6755 from c9/mvh-upgrade-less-profile-account""

This reverts commit 6c01000fc9.
pull/85/head
Matthijs van Henten 2015-04-15 12:52:18 +00:00
rodzic 6c01000fc9
commit 5890cd35df
2 zmienionych plików z 73 dodań i 36 usunięć

81
node_modules/architect-build/build.js wygenerowano vendored
Wyświetl plik

@ -1,8 +1,9 @@
var fs = require("fs");
var path = require("path");
var async = require("async");
var fs = require("fs");
var less = require("less");
var mkdirp = require("mkdirp");
var moduleDeps = require("./module-deps");
var path = require("path");
function build(config, opts, callback){
if (!opts.configFile) {
@ -157,7 +158,6 @@ function build(config, opts, callback){
});
}
// TODO
function createOutputFolder(opts, cb) {
var output = (opts.outputFolder || ".") + "/" + (opts.outputFile || "");
output = path.dirname(output);
@ -213,41 +213,78 @@ function compileLess(opts, sources, callback) {
});
}
function compileLibRules(libs, ctx, next) {
// Libs is an array of paths; adds property .compiled to keep a state(cache).
if (libs.compiled)
return next(null, libs.compiled.rules, libs.compiled.css);
var src = lessPathLib(libs.staticPrefix) + libs.join("\n");
less.parse(src, ctx, function(err, root, imports, options) {
if (err) return next(err);
toCss(root, imports, options, function(err, css) {
if (err) return next(err);
libs.compiled = {
rules: root.rules,
css: css,
};
next(null, libs.compiled.rules, libs.compiled.css);
});
});
}
function compileLessFragment(css, libs, root, staticPrefix, path, compress, callback) {
var less = require("less");
var baseLib = lessPathLib(staticPrefix || libs.staticPrefix);
var parser = new less.Parser({
var ctx = {
paths: ["/"],
filename: root + '/unknown.less',
});
compress: !!compress
};
if (!libs.compiled) {
parser.parse(lessPathLib(libs.staticPrefix) + libs.join("\n"), function(err, tree) {
libs.compiled = tree; // actually parse isn't async
});
compileLibRules( libs, ctx, function(err, libRules, libCss) {
if (err) return callback(err);
libs.css = libs.compiled.toCSS().trim();
}
// Parse Less Code
var baseLib = lessPathLib(staticPrefix || libs.staticPrefix);
var code = baseLib + "\n" + css;
// Complete paths, but not subdirectories like foo/images/bar.png
code = code.replace(/(["(])(images|icons)\//g, "$1" + staticPrefix + "/$2/");
console.log("[Less] compiling ", path || "skin", root);
parser.parse(code, function (err, tree) {
if (err)
return callback(err);
if (libs.compiled)
tree.rules = libs.compiled.rules.concat(tree.rules);
var css = tree.toCSS({ compress: compress });
if (libs.css && css.substring(0, libs.css.length) == libs.css) {
css = css.substr(libs.css.length);
less.parse(code, ctx, function (err, tree, imports, options) {
if (err) return callback(err);
tree.rules = libRules.concat(tree.rules);
toCss(tree, imports, options, function(err, css) {
if (err) return callback(err);
if (css.substring(0, libCss.length) == libCss) {
css = css.substr(libCss.length);
} else {
console.warn("couldn't strip default less");
}
callback(null, css);
});
});
});
}
function toCss(tree, imports, options, callback) {
var parseTree = new less.ParseTree(tree, imports);
var css;
try {
css = parseTree.toCSS(options).css;
}
catch (err) {
return callback(err);
}
callback(null, css);
}
function lessPathLib(staticPrefix) {

Wyświetl plik

@ -23,7 +23,7 @@
"engine.io-client": "~1.5.1",
"eslint": "git://github.com/cloud9ide/eslint.git#e2d052aafd81ea0aa6d1d4fd9f88f3613e386160",
"http-error": "~0.0.5",
"less": "~1.5.1",
"less": "^2.4.0",
"mime": "~1.2.9",
"mkdirp": "~0.3.5",
"msgpack-js": "~0.1.1",