gulp-减少全局变量的混乱

gulp-less messes with global variable

我正在尝试将版本字符串从 gulp 传递到 less,如以下示例项目所示:

当 运行 gulp less 时,生成的 test.css 文件如下所示:

.test {
  background: url("test.jpg?v=0 0");
}

如您所见,gulp-less 以某种方式将 0.0.0 转换为 0 0。如果我使用不带点或 0 的简单字符串,如 123asdf,替换工作正常。另外,直接调用

lessc --global-var='webUiVersion="0.0.0"' test.less

在命令行上生成所需的结果。

所以我的问题是:

我找到了解决这个问题的方法:诀窍是将应该传递给 less 的字符串用引号引起来,即在 [= 中写入 webUiVersion: '"0.0.0"' 而不是 webUiVersion: '0.0.0' 12=].

下面seven-phases-max已经指出了原因:webUiVersion的值直接传给了less。如果没有引号,0.0.0 将被解析为两个数字,即 0.0 后跟 .0,这会导致生成的 CSS.[=19= 中的 0 0 ]