Ошибка типа: не имеет метода isAbsolute

Я хочу минимизировать любой CSS в моей папке, где я использую плагин gulp-clean-css для gulp.

Мой код:

gulp.task('CSS-Pack', function () {
    return gulp.src(['Content/App.css', './Content/ApprovalForm.css'])
               .pipe(concat('stylesheets.css'))
               .pipe(cleanCSS({ debug: true }, function (details) {
                   console.log(details.name + ': ' + details.stats.originalSize);
                   console.log(details.name + ': ' + details.stats.minifiedSize);
               }))
               .pipe(gulp.dest('build/'));
});


gulp.task('CSS-PackAll', function () {
    return gulp.src('Content/*.css')
               .pipe(concat('stylesheets.css'))
               .pipe(cleanCSS({ debug: true, specialComments: false }, function (details) {
                   console.log(details.name + ': ' + details.stats.originalSize);
                   console.log(details.name + ': ' + details.stats.minifiedSize);
               }))
               .pipe(gulp.dest('build/'));
});

Моя задача CSS-Pack работает, но когда я запускаю задачу CSS-Pack, у меня возникает следующая ошибка:

Где я использую minify-css (я хочу использовать gulp-clean-css, потому что minify-css запрещен) плагин CSS-PackAll работает..

: \ Users \ gkv \ TFS \ SharePoint Online \ LirexAddHolidayRequest \ node_modules \ gulp-clean-css \ node_modules \ clean-css \ lib \ reader \ rewrite-url.js: 45 return path.isAbsolute (uri); ^ TypeError: У объекта # нет метода 'isAbsolute' в isAbsolute (C:\Users\gstev\TFS\SharePoint Online\LirexAddHolidayRequest\node_modules\gulp-clean-css\node_modules\clean-css\lib\reader\rewrite-url.js:45:15) в rebase (C:\Users\gkrystev\TFS\SharePoint Online\LirexAddHolidayRequest\node_modules\gulp-clean-css\node_modules\clean-css\lib\reader\rewrite-url.js:23:7) в rewriteUrl (C:\Users\gkrystev\TFS\SharePoint Online\LirexAddHolidayRequest\node_modules\gulp-clean-css\node_modules\clean-css\lib\reader\rewrite-url.js:114:5) в rebaseSourceMapComment (C:\Users\gkrystev\TFS\SharePoint Online\LirexAddHolidayRequest\node_modules\gulp-clean-css\node_modules\clean-css\lib\reader\rebase.js:78:45) Процесс завершен с кодом 8.

1 ответ

Решение

Я понимаю, что, строго говоря, это не решение вашей проблемы, но я столкнулся с этой ошибкой, когда использовал gulp-clean-css для минимизации нашего CSS, и отследил проблему до одной строки в нашем источнике:

background-image: url('/img/cloader.gif') no-repeat center top;

Кажется, это проблема обработки относительного URL; в нашем случае мы больше не нуждались в этом стиле, и удаление его решило проблему. Надеюсь это поможет.

Другие вопросы по тегам