获取当前处理文件的路径,以在Pipeline内的Gulp插件中动态设置路径

时间:2018-06-09 11:25:13

标签: javascript node.js gulp postcss gulp-uncss

我试图动态设置postcss-uncss查找未使用的css的路径,因为这是一个多资产设置,其中文件夹包含多个域/主题的资源。

所以我只想让unss将当前目录中的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()]})
        ]))

Gulp正在抛出这个错误:

[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&杯。

非常感谢一些专业人士给我的意见:)

谢谢!

0 个答案:

没有答案