如何判断一个包(gulp-copy)是否适合另一个(gulp)?

时间:2016-11-17 11:59:27

标签: npm gulp

我看到this package名为 gulp-copy ,如果 gulp 的最新版本采用了它,我无法看到任何地方。这永远不是问题吗?我担心我碰巧选择错误的包星座或者可能是一个过时的配置。

问题是:

  1. 在这种特殊情况下,链接的 gulp-copy 是否适用于 gulp 4
  2. 是否有一般方法可以确定哪些包适用于 gulp

1 个答案:

答案 0 :(得分:1)

没有通用的方法来确定某个包是否仅适用于gulp 3或gulp 4(除了阅读该包的文档之外)。软件包创建者无法以编程方式指定其软件包支持的gulp版本,并且在使用专为不同版本的gulp设计的软件包时没有任何警告。

话虽如此,根据您正在处理的软件包类型,您可以使用一些启发式方法:

常规节点包:这些包根本不是专为gulp设计的。你可以和gulp一起使用它们,因为你可以使用gulp的任何节点包,但它们也有意义。

这些软件包应该适用于任何版本的gulp,因为它们不包含gulp特定的代码,因此不依赖于对gulp所做的任何更改。通常与gulp一起使用的示例包括merge-streamdel

另一方面,

Gulp特定软件包可能会受到gulp更改的影响。

其中有 gulp plugins ,这些包应该在.pipe()的gulp流中使用。他们的名字几乎总是以gulp-开头,他们在npm标记为gulpplugin并列在GulpJS website上。

对于任何版本的gulp,这些通常也应该是安全的。 Gulp流只是常规的nodejs流,所以这些插件应该适用于任何版本的gulp(虽然nodejs流有own history of compatibility problems,但这不再真正相关)。除非vinyl file format发生重大变化,否则可能会影响gulp插件。

您提到的gulp-copy插件属于此类别,并且可以安全地与gulp 3和gulp 4一起使用。

所有这一切都说有一些gulp插件只对特定版本有意义。例如,gulp-plumber修复了流中错误处理的烦人问题,这只是gulp 3所必需的,但不是gulp 4. gulp-src-ordered-globs避免了在gulp 4中修复gulp 3中忽略模式的问题。< / p>

最后我想称之为 gulp extensions 。它们不应该与.pipe()一起使用。相反,他们以其他方式扩展了gulp的能力。

这些是你需要注意的。其中很多都涉及gulp的任务运行功能,这些功能在gulp 3和gulp 4之间经历了重大变化。此类别中可能有许多软件包仅适用于某种版本的gulp。

但是,我不会过分担心它。大多数这些软件包都会突出显示其文档中的限制。例如,run-sequence在顶部有一个很大的注释,告知用户这是gulp 3的临时解决方案。前几天我发布了一个名为gulp-parameterized的软件包,只适用于gulp 4并且它尖叫所以在文档顶部的全部大写中。

基本上扫描您想要用于这些笔记的任何包的文档,您应该相对安全。