我正在尝试将版本字符串从 gulp 传递给 less,如以下示例项目所示:
包.json:
{ "name": "webui", "version": "0.0.0", "private": true, "devDependencies": { "gulp": "^3.9.0", "gulp-less": "^3.0.5" } }
gulpfile.js:
var gulp = require('gulp'); var less = require('gulp-less'); var LESS_PARAMS = { globalVars: { webUiVersion: '0.0.0' } }; gulp.task('less', function() { return gulp.src('test.less') .pipe(less(LESS_PARAMS)) .pipe(gulp.dest('.')) })
无测试:
.test { background: url("test.jpg?v=@{webUiVersion}") }
运行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
在命令行上产生所需的结果。
所以我的问题是:
- 这是故意行为还是错误?
- 有没有办法解决这个问题?