使用动态变量使用Node进行较少编译

Mik*_*rts 2 css less node.js

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

到目前为止,我已经找到了以下解决方案:

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

2)将我所有较少的文件读入字符串,在字符串上附加我的自定义变量并进行解析。为此,我需要将所有较少的文件放入一个字符串中,而仅指向main.less文件是无法做到的。我需要创建一个文件列表,每个新文件都需要添加该文件列表。

是否有工具可以让我做到这两个?我想指向main.less文件,添加自定义变量,对其进行解析,然后将结果发送到浏览器。

Mik*_*rts 5

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
});
Run Code Online (Sandbox Code Playgroud)