【问题标题】:How to determine if a package (gulp-copy) goes well with another one (gulp)?如何确定一个包(gulp-copy)是否与另一个包(gulp)相得益彰?
【发布时间】:2017-03-31 23:04:25
【问题描述】:

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

问题是:

  1. 在这种特殊情况下,链接的 gulp-copy 能否与 gulp 4 一起工作?
  2. 有没有一种通用的方法来确定哪些包适合 gulp

【问题讨论】:

    标签: npm gulp


    【解决方案1】:

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

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

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

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

    Gulp 特定的包另一方面可能会受到 gulp 更改的影响。

    其中有 gulp 插件,它们是应该在带有.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 3 中忽略模式的问题,该问题已在 gulp 4 中修复。

    终于有了我喜欢称之为gulp扩展的东西。它们不应该与.pipe() 一起使用。相反,它们以其他方式扩展了 gulp 的功能。

    这些是您需要注意的。其中很多都处理 gulp 的任务运行能力,在 gulp 3 和 gulp 4 之间发生了重大变化。这个类别中可能有很多包只适用于特定版本的 gulp。

    不过我不会太担心。这些软件包中的大多数将在其文档中突出显示它们的局限性。例如,run-sequence 在顶部有一个很大的注释,通知用户这是 gulp 3 的临时解决方案。前几天我发布了一个名为 gulp-parameterized 的包,它只适用于 gulp 4,而且它在所有情况下都在尖叫——文档顶部的大写字母。

    基本上扫描你想使用的任何包的文档来做这些笔记,你应该是相对安全的。

    【讨论】:

    • 很棒的答案。当我看到我需要一个包来完成文件复制等常见任务时,我变得谨慎起来,并且担心它已经过时或不再需要了。我没有找到任何关于如何在不添加其他包的情况下使用 Gulp 4 复制文件的示例,这似乎出乎意料。
    • 您不需要gulp-copy 来复制文件,只需gulp.dest()(请参阅此this question)。 gulp-copy 甚至说是GitHub page。老实说,我认为这个插件根本不需要存在。我自己当然从来没有用它来复制文件,如果被问到我不会推荐它。
    • 好点。因此我的困惑。我虽然它被用来获取例如从 node_modules/some/dist/x.min.csswwwroot/css/x.min.css,即扁平化结构。
    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2023-03-22
    相关资源
    最近更新 更多