node-cube
Advanced tools
Comparing version 0.0.6 to 0.0.7
59
index.js
@@ -17,2 +17,35 @@ /*! | ||
var app; | ||
function loadIgnore(path) { | ||
try { | ||
covIgnore = xfs.readFileSync(path).toString().split(/\r?\n/g); | ||
} catch (e) { | ||
console.log(e); | ||
return []; | ||
} | ||
var _ignore = []; | ||
covIgnore.forEach(function (v, i, a) { | ||
if (!v) { | ||
return; | ||
} | ||
if (v.indexOf('/') === 0) { | ||
v = '^' + v; | ||
} | ||
_ignore.push(new RegExp(v.replace(/\./g, '\\.').replace(/\*/g, '.*'))); | ||
}); | ||
return _ignore; | ||
} | ||
function checkIgnore(file, ignores) { | ||
var flag = false; | ||
var rule; | ||
for (var i = 0; i < ignores.length; i++){ | ||
rule = ignores[i]; | ||
if (rule.test(file)) { | ||
flag = true; | ||
break; | ||
} | ||
}; | ||
return flag; | ||
} | ||
/** | ||
@@ -90,12 +123,9 @@ * [init description] | ||
exports.processDir = function (source, dest, compress, cb) { | ||
compress = compress === undefined ? true : compress; | ||
if (!source) { | ||
dest = source + '-min'; | ||
if (!dest) { | ||
dest = source + '-build'; | ||
} | ||
JsTransfer.init({root: source}); | ||
var ignores = loadIgnore(path.join(source, '.cubeignore')); | ||
xfs.walk(source, function (err, sourceFile) { | ||
var relFile = sourceFile.substr(source.length); | ||
if (/^(\\|\/)/.test(relFile)) { | ||
relFile = relFile.substr(1); | ||
} | ||
console.log('process file:', relFile); | ||
var destFile = path.join(dest, relFile); | ||
@@ -106,9 +136,18 @@ var fileName = path.basename(relFile); | ||
xfs.sync().save(destFile, xfs.readFileSync(sourceFile)); | ||
console.log('[copy file]:', relFile.substr(1)); | ||
} else if (/\.js$/.test(fileName)) { | ||
JsTransfer.init({root: source}); | ||
var code = JsTransfer.transferFile(relFile, compress); | ||
xfs.sync().save(destFile, code); | ||
var code; | ||
if (checkIgnore(relFile, ignores)) { | ||
code = ug.minify(sourceFile); | ||
xfs.sync().save(destFile, code.code); | ||
console.log('[minifiy js]:', relFile.substr(1)); | ||
} else { | ||
code = JsTransfer.transferFile(relFile, compress); | ||
xfs.sync().save(destFile, code); | ||
console.log('[transfer js]:', relFile.substr(1)); | ||
} | ||
} else if (/\.(css|less|sass)$/.test(fileName)) { | ||
var code = CssTransfer.transferFile(sourceFile, compress); | ||
xfs.sync().save(destFile, code); | ||
console.log('[transfer css]:', relFile.substr(1)); | ||
} | ||
@@ -115,0 +154,0 @@ }, cb); |
@@ -8,9 +8,34 @@ /*! | ||
var path = require('path'); | ||
var css = require('css'); | ||
var css = require('clean-css'); | ||
var less = require('less'); | ||
var sass = require('./sass'); | ||
var fs = require('fs'); | ||
var lessParser = new(less.Parser); | ||
exports.transferFile = function(path, compress) { | ||
exports.transferFile = function(file, compress) { | ||
var code; | ||
try { | ||
code = fs.readFileSync(file, 'utf8').toString(); | ||
} catch (e) { | ||
e.message += 'module not found "' + file + '"'; | ||
throw e; | ||
} | ||
var ext = path.extname(file); | ||
try { | ||
switch (ext) { | ||
case '.css': | ||
code = this.transferCss(code, compress); | ||
break; | ||
case '.less': | ||
code = this.transferLess(code, compress); | ||
break; | ||
case '.sass': | ||
code = this.transferSass(code, compress); | ||
break; | ||
} | ||
} catch (e) { | ||
e.message += '\n file:' + file; | ||
throw e; | ||
} | ||
return code; | ||
}; | ||
@@ -22,4 +47,7 @@ | ||
} | ||
var ast = css.parse(code); | ||
return css.stringify(ast, {compress: true}); | ||
return new css({ | ||
compatibility: true, | ||
noAdvanced: true, | ||
keepSpecialComments: 0 | ||
}).minify(code); | ||
}; | ||
@@ -26,0 +54,0 @@ |
@@ -5,3 +5,3 @@ { | ||
"description": "a new way to write js in browser", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"homepage": "https://github.com/fishbar/cube", | ||
@@ -17,4 +17,3 @@ "repository": { | ||
"scripts": { | ||
"test": "node_modules/.bin/mocha -r jscoverage test", | ||
"build": "node_modules/.bin/uglifyjs cube.js -c -o cube.min.js" | ||
"test": "node_modules/.bin/mocha -r jscoverage --coverage 70,80,95 -R spec test" | ||
}, | ||
@@ -29,3 +28,3 @@ "engines": { | ||
"less": "1.7.0", | ||
"css": "1.6.0", | ||
"clean-css": "2.1.8", | ||
"xfs" : "0.1.9" | ||
@@ -32,0 +31,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
2632166
17874
9
+ Addedclean-css@2.1.8
- Removedcss@1.6.0
- Removedcss@1.6.0(transitive)
- Removedcss-parse@1.7.0(transitive)
- Removedcss-stringify@1.4.1(transitive)