问题标签 [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 投票
1 回答
498 浏览

gulp - Gulp 4 glob 排除特定文件和文件夹不起作用

我最近安装了 gulp 4 [来自 3.9.1],但在让我的 glob 像以前一样工作时遇到了问题。

我有一个要传输的整个目录[少一些其他子目录和文件]。

以下是相关代码:

基本上,我试图阻止node_modules文件夹被传输,并且我还想阻止.json主文件夹中的所有文件也被传输。

正在发生的事情是node_modules仅传输目录[无内容]。此外,.json正在传输所有文件。

我该如何调整它以修复 Gulp 4 处理 glob 的方式 [因为它似乎略有变化]?

0 投票
1 回答
751 浏览

javascript - Gulp 4 手表未检测到更改

gulp v.4.0.0 是否可以监视所在文件夹之外的文件gulpfile.js

在较旧的 gulp 中,可以设置文件路径../../someFile.css并监视其更改,但在 v4 中,它不会检测到同一路径的更改。

['../../style1.scss', '../../style2.scss']不会检测到对文件的更改,但它们将针对'./js/main.js'. 我错过了什么吗?

0 投票
0 回答
523 浏览

shell - 如何在 Gulp 4 中运行 shell 脚本(.sh 文件)?

大家好,新年快乐!

从 Gulp 版本 4 开始,我无法运行 shell 脚本。

我有简单的 shell 脚本。

当我以这种方式运行它时,它可以工作

但是当我尝试使用 npm gulp-shell 插件时,它不会工作。

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

见代码:

我知道我做错了什么。请有人解释一下这个异步完成是如何在幕后工作的。或者至少在我可以读到它的地方。因为似乎 gulp 文档对我来说还不够https://gulpjs.com/docs/en/getting-started/async-completion

0 投票
0 回答
549 浏览

javascript - BrowserSync 在执行开始时只工作一次。更改我的 Scss 文件后重新加载不起作用

我正在使用 Gulp 4,并且 BrowserSync 在更改我的 scss 文件后不会重新加载我的浏览器。

这是我的 gulpfile.js。

启动 gulp serve 命令后,执行结果如下:

大口发球

当我修改我的 Scss 文件时出现“正在重新加载浏览器...”,CSS 文件已更新,但我的浏览器不会自动重新加载我的页面。也许,这只是 Gulp 4 语法的错误。

谢谢你的帮助。

0 投票
1 回答
1085 浏览

gulp-watch - 升级到 gulp 4 后 gulp watch 导致无限循环

我已将我的 gulpfile.js 升级到 gulp 4。gulp dev工作正常。但是每当我编辑任何文件时reloadinject任务都会进入一个无限循环。

我的 gulpfile.js:

下图显示了无限循环 在此处输入图像描述

谁能帮我找出我在这里做错了什么。

提前致谢。

0 投票
1 回答
3592 浏览

node.js - gulp 4 版本问题导致所有任务失败

gulp 认为它已经足够了,它在我的项目中死了。

当前版本

如果我运行昨天工作的任务之一,我会收到以下错误:

C:\Program Files\nodejs\node_modules\gulp\bin\gulp.js:129 gulpInst.start.apply(gulpInst, toRun); ^

TypeError:无法在 C:\Program Files\nodejs\node_modules\gulp\bin\gulp.js:129:20 at process._tickCallback (internal/process/next_tick.js:61:11) 处读取未定义的属性“应用” Function.Module.runMain (internal/modules/cjs/loader.js:745:11) 在启动时 (internal/bootstrap/node.js:283:19) 在 bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

现在我到处都看到了这个错误,并尝试了很多方法来修复它

  1. 清除 node_module 并使用 rm -rf node_modules 和 npm i 安装
    • 从全局和本地包中卸载 gulp 和 gulp-cli
    • 之后我只在全局安装了 gulp-cli 并在 dev 本地安装了 gulp v4
  2. 关闭一切并重新启动计算机,希望有一个神奇的修复,没有运气

编辑:

也尝试了以下但没有成功

  1. 删除 package-lock.json 以强制重新创建
  2. 全局安装 gulp

什么工作

似乎存在一些问题,即 cli 版本未正确使用。如果我明确使用我的项目本地 node_modules 文件夹中的 gulp 文件,如下所示:

然后我的任务将运行并正常工作

什么不起作用

如果我使用以下命令:

我得到这篇文章顶部引用的错误。

我不知道从哪里开始,我有一个解决方法,但是当我尝试使用 gulp 和 cli 的最新稳定版本时,我无法弄清楚为什么 gulp 会死在我身上。

0 投票
1 回答
3593 浏览

gulp - Gulp 4 php 与 browserSync

我是 gulp-4 的新手。我尝试用 php 运行 gulp js,browserSync 它不起作用?所有其他任务都可以工作,但 php 和 browserSync 根本不起作用。它没有用浏览器打开有什么问题吗?是否可以通过 browserSync 或任何限制与 php 一起使用?我想将浏览器同步与 php 一起使用,但似乎无法正常工作。

这是我的代码...

0 投票
2 回答
783 浏览

gulp-4 - Gulp 4 一个接一个地运行任务

我正在尝试在 gulp 4 中构建一个有点复杂的工作流程,基本上我想在每次运行“默认”gulp 任务时一个接一个地运行 5 个任务(请参阅下面的任务列表);但是我遇到了一些错误,如果我手动运行它们,一切正常,但是如果我运行“默认”任务,似乎 gulp 变得疯狂并且没有结束所有任务,它停止在任务 4,但是结果里面没有 concat ,并且完全错过了任务 5,即使在 bash 中说“完成”。我认为问题在于时间执行。

任务清单:

1. 任务1:将供应商从“node_modules/vendor 文件夹”拉到“src/vendors/pending”(我知道没有必要拉出供应商,但我有我的理由)

2. 任务2: concat和压缩“src/vendors/pending”里面的所有js并push到“src/vendors/ready”;连接名称结果:“vendors.min.js”

3.任务3:编译压缩我的es6脚本并推送到“src/requests/pending”;编译名称结果:“main.min.js”

4. 任务四: concat "vendors.min.js" 和 "main.min.js" 并推入"src/request/ready" 编译名结果:"frontend.min.js"

5. 任务5:创建地图并将“frontend.min.js”推入“assets/js”文件夹

默认任务:

gulp.task('default', gulp.series('task1', 'task2', 'task3, 'task4', 'task5' ));

有没有办法让一个任务依赖于另一个任务并仅在前一个任务结束时才开始下一个任务?

我尝试使用“setTimeout 函数”包装所有任务,并且似乎可以工作,但我不太喜欢它,我正在寻找可以逐步运行的东西。

这里是 gulp 文件:

0 投票
0 回答
274 浏览

php - 使用 BrowserSync 的 Gulp v.4 CSS 注入不起作用

我有一个使用 Valet + 的本地服务器设置。我有一个 gulpfile.js 的 gulp v.4 设置(见下文),我正在尝试执行一个 watch 函数,它创建一个 css 注入作为默认任务。当 watch 任务触发 scss 文件的更改时,sass 编译任务起作用,但浏览器不会注入 css,除非我手动重新加载浏览器。我不确定这是 valet+、我的 gulpfile 设置还是浏览器的问题。请帮忙。

我已经为 gulp v.4 尝试了几种不同的 gulpfile 格式。我试过不同的浏览器。我已经在监视任务中全局和本地尝试了 browsersync init 函数,但没有任何效果。

当我对 scss 文件进行更改时,我希望 css 能够注入并且不需要手动重新加载浏览器。实际结果是 scss 文件正确编译成 css,但不是通过我的 watch 和 browsersync 任务注入的。

0 投票
1 回答
4356 浏览

gulp - Gulp 4手表不工作,只运行一次

我从 Gulp 3 更改为 Gulp 4,但我无法让它工作。

当我运行 gulp 并保存 SCSS 或 HTML 文件时,它会成功创建一个新文件。如果我再次保存,则不会发生任何事情。它只运行那些。

下面是我的gulpfile.js