使用动态变量编译Less with Node

时间:2015-06-11 18:45:44

标签: css node.js less

我在NodeJS中构建一个SaaS项目,我需要使用LESS动态构建CSS。我希望每次构建css时能够更改一些较少的变量。变量来自数据库,每个用户可能不同(因此我预先构建的静态css文件无法工作)。

到目前为止,我已找到解决方案:

1)读取main.less文件,该文件有导入,并从那里进行解析。无法改变变量。

2)将我所有较少的文件读入一个字符串,在字符串上附加我的自定义变量并解析它。为此,我需要将所有较少的文件放入一个字符串中,我只能通过指向main.less文件来完成。我需要为每个新文件创建一个需要添加的文件列表。

是否有工具允许我同时执行这两项操作?我想指向我的main.less文件,添加我的自定义变量,解析它并将结果发送到浏览器。

1 个答案:

答案 0 :(得分:4)

' less' npm上的包会做到这一点。您只需在选项字段中传入自定义变量即可。虽然你必须在较少的文件中注意路径名,但它们必须是绝对的而不是相对的。



var input = fs.readFileSync(__dirname + '/../private/css/main.less', 'utf8');

var options = {
  modifyVars: {
    'var-name': '#000000'
  }
};


less.render(input, options, function (err, result) {
  // send response to end-user here
});