使用 Node 编译 Less,使用动态变量
Compile Less with Node, with dynamic variables
我正在 NodeJS 中构建 SaaS 项目,我需要使用 LESS 即时构建 CSS。每次构建 css 时,我都希望能够更改一些较少的变量。变量来自数据库,每个用户可能不同(因此我预建的静态 css 文件将不起作用)。
到目前为止,我已经找到了解决方案:
1) 读取包含导入的 main.less 文件,并从那里进行解析。无法更改变量。
2) 将我所有的 less 文件读入一个字符串,将我的自定义变量附加到该字符串上并对其进行解析。为此,我需要将我所有的 less 文件放入一个字符串中,我无法通过仅指向 main.less 文件来做到这一点。我需要创建一个文件列表,每个新文件都需要添加到该列表中。
有没有一种工具可以让我同时做到这两点?我想指向我的 main.less 文件,添加我的自定义变量,解析它并将结果发送到浏览器。
npm 上的 'less' 包可以做到这一点。您可以简单地在选项字段中传入自定义变量。虽然你必须注意 less 文件中的路径名,但它们必须是绝对的而不是相对的。
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
});
我正在 NodeJS 中构建 SaaS 项目,我需要使用 LESS 即时构建 CSS。每次构建 css 时,我都希望能够更改一些较少的变量。变量来自数据库,每个用户可能不同(因此我预建的静态 css 文件将不起作用)。
到目前为止,我已经找到了解决方案:
1) 读取包含导入的 main.less 文件,并从那里进行解析。无法更改变量。
2) 将我所有的 less 文件读入一个字符串,将我的自定义变量附加到该字符串上并对其进行解析。为此,我需要将我所有的 less 文件放入一个字符串中,我无法通过仅指向 main.less 文件来做到这一点。我需要创建一个文件列表,每个新文件都需要添加到该列表中。
有没有一种工具可以让我同时做到这两点?我想指向我的 main.less 文件,添加我的自定义变量,解析它并将结果发送到浏览器。
npm 上的 'less' 包可以做到这一点。您可以简单地在选项字段中传入自定义变量。虽然你必须注意 less 文件中的路径名,但它们必须是绝对的而不是相对的。
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
});