为什么vinyl.isVinyl()对于gulp发出的乙烯基文件返回false?

时间:2016-08-25 16:01:23

标签: javascript gulp gulp-plugin vinyl through2

我正在学习gulp源代码,并尝试编写一个gulp插件。

现在我对某事感到困惑。

这是我的插件代码:

though2.obj()

这是gulp源代码中创建vinyl文件的部分:

https://github.com/gulpjs/vinyl-fs/blob/master/lib/src/wrap-with-vinyl-file.js

MY CONFUSION:

file注册的transformFunction会收到一个vinyl个对象,该对象应该是vinyl.isVinyl()个文件。

为什么false会返回file

为什么_isVinyl对象没有<?php echo '<form method = "post" action = "http://localhost:8080/sample.php">'; for($a = 0; $a < 3; $a++){ echo '<input type = "text" name = "box"></br>'; } echo'<input type = "submit" name = "submit" value = "submit">'; if(isset($_POST['submit'])){ $square = $_POST['box']; echo $square; } echo'</form>'; ?> 属性?

1 个答案:

答案 0 :(得分:4)

这是您在Github上查看的$webhookNotification->subscriptionvinyl-fs版本以及vinylvinyl-fs本地vinyl安装的哪个版本的问题正在使用。

您可能通过输入以下内容从npmjs.com安装gulp:

gulp

目前安装了gulp版本$ npm install --save-dev gulp 。您可以使用npm ls查看gulp的3.9.1版本的vinyl-fsvinyl取决于哪个版本。{3}}。这是该命令的(缩写)输出:

3.9.1

因此└─┬ gulp@3.9.1 └─┬ vinyl-fs@0.3.14 └─┬ vinyl@0.4.6 取决于gulp@3.9.1vinyl-fs@0.3.14取决于vinyl-fs@0.3.14

以下是GitHub上这些版本的链接:

https://github.com/gulpjs/vinyl-fs/tree/v0.3.14
https://github.com/gulpjs/vinyl/tree/v0.4.6

正如您在GitHub vinyl@0.4.6上看到的那样,具有vinyl@0.4.6属性。仅限较新版本,例如._isVinyl have this property

由于vinyl@1.2.0使用gulp@3.9.1发出乙烯基文件,因此您的gulp安装程序发出的乙烯基文件不具有vinyl@0.4.6属性。这就是._isVinyl函数在您的示例中返回vinyl.isVinyl()的原因。

当前development version for the upcoming gulp 4.0使用false。如果您前往install that version of gulp,则示例中的vinyl@1.2.0电话会返回vinyl.isVinyl()