node.js中用less,想import另一个less,总是报500错误,错误信息为:“500 [object Object]”,node.js的代码如下:
var parser = new(less.Parser)({
paths: ['./main.less'] // Specify search paths for [[[[[[[[[[[[@import](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import)](/user/import) directives
});
parser.parse(content, function (err, tree) {
if (err) { return console.error(err) };
content = tree.toCSS({ compress: true }); // Minify CSS output
callback(content);
});
经查,在tree.toCSS的时候报错,被引入的文件main.less是一个简单的less文件,只有一个body{}
4 回复
var path = require('path');
var filename = './main.less';
filename = path.join(__dirname, filename);
var parser = new(less.Parser)({
paths: [path.dirname(filename) ]
filename : filename
});
感谢 @imzshh 的代码,研究表明,paths需要用绝对路径,filename可以不用,代码如下:
var parser = new(less.Parser)({
paths: [_path.join(__dirname, "../static/css")]
});
终于搞定了,谢了。
lesscss.net上的代码给的是相对路径,奇怪。示例代码如下:
var parser = new(less.Parser)({
paths: ['.', './lib'], // Specify search paths for @import directives
filename: 'style.less' // Specify a filename, for better error messages
});
parser.parse('.class { width: 1 + 1 }', function (e, tree) {
tree.toCSS({ compress: true }); // Minify CSS output
});