我看到this package名为 gulp-copy ,如果 gulp 的最新版本采用了它,我无法看到任何地方。这永远不是问题吗?我担心我碰巧选择错误的包星座或者可能是一个过时的配置。
问题是:
答案 0 :(得分:1)
没有通用的方法来确定某个包是否仅适用于gulp 3或gulp 4(除了阅读该包的文档之外)。软件包创建者无法以编程方式指定其软件包支持的gulp版本,并且在使用专为不同版本的gulp设计的软件包时没有任何警告。
话虽如此,根据您正在处理的软件包类型,您可以使用一些启发式方法:
常规节点包:这些包根本不是专为gulp设计的。你可以和gulp一起使用它们,因为你可以使用gulp的任何节点包,但它们也有意义。
这些软件包应该适用于任何版本的gulp,因为它们不包含gulp特定的代码,因此不依赖于对gulp所做的任何更改。通常与gulp一起使用的示例包括merge-stream
和del
。
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并且它尖叫所以在文档顶部的全部大写中。
基本上扫描您想要用于这些笔记的任何包的文档,您应该相对安全。