Я пытаюсь передать строку версии из 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
в командной строке дает желаемый результат.
Итак, мои вопросы:
- Это преднамеренное поведение или ошибка?
- Есть ли способ обойти эту проблему?