hej我有意在使用maven构建项目时编译lesscss文件。 看看lesscss网站,可以在html文件的head部分编译那些引用它们的文件,就像这样
<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>
幻像的脚本可以访问本地硬盘上的任何文件,因此应该可以遍历* .less文件。现在问题是如何编译这些文件并用css扩展名保存它们。
可惜的是命令行只有在安装到节点时才可用(或者我错了?)感谢任何提示
答案 0 :(得分:0)
在第二次尝试之后我创建了这个脚本
console.log('*********************************************************************');
console.log('executing script ' + phantom.scriptName);
console.log('phantomJS version ' + phantom.version.major + '.' + phantom.version.minor + '.' + phantom.version.patch);
console.log('*********************************************************************');
console.log('looks for less files under src/main/webapp/* and src/main/resources/*');
console.log('to change this pass root directory as script parameter');
console.log('example Usage: phantomjs-less.js src/main/resources/css');
console.log('*********************************************************************');
var root_directory = null;
if (phantom.args.length !== 0) {
root_directory = phantom.args[0];
}
console.log('injecting less script');
phantom.injectJs('src/main/webapp/js/less-1.2.2.js');
var parser = new(less.Parser);
var searchLessIn = function(root, fs) {
console.log('look for less in ' + root);
if (fs.isDirectory(root)) {
var files = fs.list(root);
for (var index = 2; index < files.length; index ++ ) {
searchLessIn(root + '/' + files[index], fs);
}
} else {
if (root.substr(-5) === '.less'){
parseLess(root, fs);
}
}
console.log('exit ' + root);
};
var parseLess = function(file, fs) {
console.log('parse less file : ' + file);
var opened = fs.read(file);
console.log(opened);
parser.parse(opened, function (err, tree) {
if (err) { return console.error(err); }
console.log(tree.toCSS());
});
};
var fs = require('fs');
console.log('*********************************************************************');
console.log('current root directory =' + fs.workingDirectory);
var root = fs.workingDirectory + '/src/main/webapp/css';
console.log('look for less files under ' + root);
if (!fs.exists(root)) {
console.log(root + ' directory doesnt exists')
phantom.exit(1);
}
searchLessIn(root, fs);
phantom.exit(0);
它应该将已解析的css打印到控制台
答案 1 :(得分:0)
尝试lesscss maven插件https://github.com/marceloverdijk/lesscss-maven-plugin
它使用rhino,所以不是100ms,它需要3000ms,但它可以工作,你所做的只是将一些xml放入pom.xml