问题标签 [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.
node.js - 以编程方式运行 Gulp 4 任务
gulp.task
gulpfile.js 中定义了几个任务:
我想以编程方式启动其中一个。最好在同一个进程中(没有 exec 等),因为这背后的原因之一是能够在调试器中运行脚本。
如何才能做到这一点?
看起来有类似gulp.run
and的东西gulp.start
,但它们在 Gulp 4 中已被弃用。
error-handling - Gulp 4 即使出现错误也会继续观察
我怎么能做这个
即使 linter 或 transpiler 发生错误,也要继续观察?
我的任务功能如下所示:
gulp-4 - Gulp 4 资产不使用 gulp.dest 复制
几周前我让它工作了,但由于某种原因,以下不再将我的文件从 assets 目录复制到 dist 目录。
它确实创建了字体文件夹并从 font-awesome 复制字体,但仅此而已。
如果我gs('fonts')
从“资产”任务中删除,它似乎确实可以正常工作。
我的目录结构是:
资产
- /字体
- /img
- /脚本
- /样式表
- .htaccess
- .robots.txt
我试过将路径直接放到 .htaccess 文件中,它也没有被复制过来。想法?
另外 - 如果有更好的方法来写这个,我愿意接受建议。
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
.
javascript - 尽管返回流,Gulp 4.0 信号异步完成错误
我有以下返回流的 gulp 任务。它在 gulp 3.9.1 中运行良好,但转换为 gulp 4.0,我得到:
您是否忘记发出异步完成信号?
我已经尝试添加done()
到我的上游任务,但它仍然错误,因为我认为它起源于这里并通过我的后续任务传播,这些任务依赖于这个完成。
node.js - 如何使用 NPM v5 安装 Gulp v4?
我已经安装了新版本的 npm 但现在当我尝试运行下一个命令时,依赖项没有安装:
NPM 版本:v5.0.1
有没有一种从 github 分支安装 npm 包的新方法?
相关问题(旧 NPM 版本):依赖于在 package.json 中使用 git URL 的分支或标签?
关于安装依赖项的 NPM 文档:npm install docs
node.js - 以编程方式运行多个 gulp4 任务
如何按顺序运行多个节点流(由 gulp 生成)?
让我们假设一个简单的 gulpfile 有两个依赖的任务:
到目前为止我想出了什么:
确实这适用于这个简单的例子,但是有没有更方便/优雅的方式?特别是对于较长的依赖链。也许是使用gulp.series
和执行整个系列的解决方案?
gulp - 在 Gulp 4 中使用 stream-combiner2
我正在尝试将 stream-combiner2 与我的 Gulp 4 任务一起使用,正如本食谱当前版本中所建议的那样。但是,我总是收到:
我已经阅读了这个答案中关于 Gulp 4 async completion的优秀信息,但是我在我的任务中应用它时遇到了麻烦。这是我所拥有的:
terminal - Gulp 4:如何检测“您是否忘记发出异步完成信号?” 复杂构建脚本中的错误
正如迁移到 Gulp 4 的人可能知道的gulp.series
那样,如果系列中的任务未正确发出完成信号,则不会继续执行。
我的问题是它处理这种错误的方式——它只是控制台中的一条消息(你忘记发出异步完成信号了吗?);gulp 仍然以错误代码 0 退出。这意味着,如果您在更复杂的构建脚本中运行 gulp,对于该脚本来说,看起来一切正常,并且 gulp 任务成功完成,但显然没有。(相反,如果您使用 抛出错误gulpUtil.plugin error
,则会产生非 0 错误代码。)
所以我的问题是:您将如何“从外部”检测到发生了此类错误?
- 在这种情况下,有没有办法让 gulp 退出非 0?(是否有我可以订阅并引发错误的事件,或者我可以设置的配置等)
- 我是否应该尝试检查应该生成的资产是否存在?(我发现这个解决方案非常脆弱。)
- 我是否应该“观看”控制台消息并寻找特定的字符串,例如“您是否忘记发出信号...”?(啊!)
- (是的,我知道我可以用 gulp 做所有事情,然后我就不需要检查错误代码,但我们假设,实际上,我做不到。)
还有其他我没有想到的可能性吗?
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 一起使用并让它自动检测任务吗?如果是这样,我需要按照哪些步骤进行设置?