首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从一饮而尽的回调中提取文件名?

如何从一饮而尽的回调中提取文件名?
EN

Stack Overflow用户
提问于 2018-07-12 11:00:23
回答 1查看 228关注 0票数 2

我正在使用检查特定的字符串,如果找到了该字符串,我想抛出一个类似于“文件abc中找到的字符串”这样的错误。文件param包含包含文件名+缓冲区的整个对象,但我不知道如何从gulp中的文件对象中提取文件名?

代码语言:javascript
复制
 .pipe(contains({
            search: 'myString',
            onFound: function (string, file, cb) {
                console.log(file);
                var error = 'Your file "' + file + '" contains "' + string + '", it should not.';
                cb(new gutil.PluginError('gulp-contains', error));
            }
        }))

现在,这一行给出了“您的文件对象对象包含someString,它不应该”的输出。另外,console.log(文件)记录输出如下

代码语言:javascript
复制
<File "myFile.js"  <Buffer 66 75 6e 63 74 69 6f 6e 20 28 75 73 65 72 2c 20 63 6f 6e 74 65 78 74 2c 20 63 61 6c 6c 62 61 63 6b 29 20 7b 0d 0a 20 20 20 20 63 6f 6e 73 6f 6c 65 2e ... >>

我只想要部件" myFile.js“,这样我的输出字符串将是”您的文件myFile.js包含someString,它不应该“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 11:24:11

这里的文件是Node.js中的一个文件对象。您可以使用file.path获取路径。

代码语言:javascript
复制
.pipe(contains({
            search: 'myString',
            onFound: function (string, file, cb) {
                console.log(file);
                var sFile = require('path').parse(file.path).base;
                var error = 'Your file "' + sFile + '" contains "' + string + '", it should not.';
                cb(new gutil.PluginError('gulp-contains', error));
            }
        }))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51303941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档