问题标签 [gulp-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7495 浏览

node.js - 以编程方式运行 Gulp 4 任务

gulp.taskgulpfile.js 中定义了几个任务:

我想以编程方式启动其中一个。最好在同一个进程中(没有 exec 等),因为这背后的原因之一是能够在调试器中运行脚本。

如何才能做到这一点?

看起来有类似gulp.runand的东西gulp.start,但它们在 Gulp 4 中已被弃用。

0 投票
1 回答
266 浏览

error-handling - Gulp 4 即使出现错误也会继续观察

我怎么能做这个

即使 linter 或 transpiler 发生错误,也要继续观察?

我的任务功能如下所示:

0 投票
1 回答
1529 浏览

gulp-4 - Gulp 4 资产不使用 gulp.dest 复制

几周前我让它工作了,但由于某种原因,以下不再将我的文件从 assets 目录复制到 dist 目录。

它确实创建了字体文件夹并从 font-awesome 复制字体,但仅此而已。

如果我gs('fonts')从“资产”任务中删除,它似乎确实可以正常工作。

我的目录结构是:

资产

  • /字体
  • /img
  • /脚本
  • /样式表
  • .htaccess
  • .robots.txt

我试过将路径直接放到 .htaccess 文件中,它也没有被复制过来。想法?

另外 - 如果有更好的方法来写这个,我愿意接受建议。

0 投票
1 回答
372 浏览

bower - Gulp 4 bower 安装未触发完成

我正在使用 gulp 4。当尝试使用 gulp 安装凉亭依赖项时,凉亭任务永远不会完成。下面的两个示例都实际安装了依赖项。

示例 1

这永远不会结束。它只是挂起。

示例 2

这个完成后抛出The following tasks did not complete: bower. Did you forget to signal async completion?。但由于它抛出,我无法继续我的gulp.series.

0 投票
1 回答
480 浏览

javascript - 尽管返回流,Gulp 4.0 信号异步完成错误

我有以下返回流的 gulp 任务。它在 gulp 3.9.1 中运行良好,但转换为 gulp 4.0,我得到:

您是否忘记发出异步完成信号?

我已经尝试添加done()到我的上游任务,但它仍然错误,因为我认为它起源于这里并通过我的后续任务传播,这些任务依赖于这个完成。

0 投票
1 回答
940 浏览

node.js - 如何使用 NPM v5 安装 Gulp v4?

我已经安装了新版本的 npm 但现在当我尝试运行下一个命令时,依赖项没有安装:

NPM 版本:v5.0.1

有没有一种从 github 分支安装 npm 包的新方法?

相关问题(旧 NPM 版本):依赖于在 package.json 中使用 git URL 的分支或标签?

关于安装依赖项的 NPM 文档:npm install docs

0 投票
1 回答
576 浏览

node.js - 以编程方式运行多个 gulp4 任务

如何按顺序运行多个节点流(由 gulp 生成)?

让我们假设一个简单的 gulpfile 有两个依赖的任务:

到目前为止我想出了什么:

确实这适用于这个简单的例子,但是有没有更方便/优雅的方式?特别是对于较长的依赖链。也许是使用gulp.series和执行整个系列的解决方案?

0 投票
2 回答
226 浏览

gulp - 在 Gulp 4 中使用 stream-combiner2

我正在尝试将 stream-combiner2 与我的 Gulp 4 任务一起使用,正如本食谱当前版本中所建议的那样。但是,我总是收到:

我已经阅读了这个答案中关于 Gulp 4 async completion的优秀信息,但是我在我的任务中应用它时遇到了麻烦。这是我所拥有的:

0 投票
1 回答
3394 浏览

terminal - Gulp 4:如何检测“您是否忘记发出异步完成信号?” 复杂构建脚本中的错误

正如迁移到 Gulp 4 的人可能知道的gulp.series那样,如果系列中的任务未正确发出完成信号,则不会继续执行。

我的问题是它处理这种错误的方式——它只是控制台中的一条消息(你忘记发出异步完成信号了吗?);gulp 仍然以错误代码 0 退出。这意味着,如果您在更复杂的构建脚本中运行 gulp,对于该脚本来说,看起来一切正常,并且 gulp 任务成功完成,但显然没有。(相反,如果您使用 抛出错误gulpUtil.plugin error,则会产生非 0 错误代码。)

所以我的问题是:您将如何“从外部”检测到发生了此类错误?

  • 在这种情况下,有没有办法让 gulp 退出非 0?(是否有我可以订阅并引发错误的事件,或者我可以设置的配置等)
  • 我是否应该尝试检查应该生成的资产是否存在?(我发现这个解决方案非常脆弱。)
  • 我是否应该“观看”控制台消息并寻找特定的字符串,例如“您是否忘记发出信号...”?(啊!)
  • (是的,我知道我可以用 gulp 做所有事情,然后我就不需要检查错误代码,但我们假设,实际上,我做不到。)

还有其他我没有想到的可能性吗?

0 投票
1 回答
1692 浏览

visual-studio-code - 在 Gulp 4.0 中使用 Visual Studio Code 任务

我正在将项目从 Gulp 3.9.1 (npm install gulp) 切换到 Gulp 4.0 (npm install gulp-4.0.build),但是当我这样做时,Visual Studio Code 不再能够自动检测我的 gulpfile.js 中的任务。在这两种情况下,gulp 都安装在本地。

我的 .vscode/tasks.json 看起来像:

查看任务输出,我看到以下消息:

运行 gulp --tasks-simple 没有列出任何任务。你运行 npm install 了吗?

您可以将 Gulp 4.0 与 VS Code 一起使用并让它自动检测任务吗?如果是这样,我需要按照哪些步骤进行设置?