Получить путь к обрабатываемому в данный момент файлу для динамически заданного пути в плагине Gulp внутри конвейера

Я пытаюсь динамически установить путь, по которому postcss-uncss ищет неиспользуемые CSS, потому что это настройка с несколькими активами, где папки содержат ресурсы для нескольких доменов / тем.

Поэтому я просто хочу, чтобы uncss сравнил шаблоны html.twig в текущем каталоге с css в текущем каталоге.

У меня есть функция, которая возвращает правильный путь, когда я использую parsePath() в конвейере, и меняю функцию parsePath(), чтобы вернуть log(path.relative(...)). Я предположил, что мне придется вернуть замыкание в функции, потому что в соответствии с документацией path.relative() возвращает строку, что мне и нужно. Но это просто не сработает.

function parsePath() {
    return through.obj(function (file, enc, cb) {
        return path.relative(path.join(file.cwd, file.base), file.path+"../../../../!**!/!*.html.twig");
    });
}

И в моем конвейере я пытаюсь установить объект конфигурации следующим образом:

.pipe(postcss([
            uncss({html: [parsePath()]})
        ]))

И Гулп бросает эту ошибку:

[13:07:51] Using gulpfile ~/Business/Code/xxxxxx/gulpfile.js
[13:07:51] Starting 'default'...
[13:07:51] Starting 'scripts'...
[13:07:51] Finished 'scripts' after 282 ms
[13:07:51] Starting 'styles'...
[13:07:52] 'styles' errored after 632 ms
[13:07:52] TypeError in plugin "gulp-postcss"
Message:
    Expected a string
Details:
    fileName: views/groups/group_1/page_1/v1/assets/css/app.css
    domainEmitter: [object Object]
    domain: [object Object]
    domainThrown: false

Не знаю, как решить эту проблему, пробовал разные вещи часами, но я новичок в NodeJS & Gulp.

Был бы очень признателен, некоторые профессионалы дают мне вклад:)

Спасибо!

0 ответов

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