gulp 4 版本问题导致所有任务失败

J K*_*ing 5 node.js npm gulp gulp-4

gulp 认为它已经受够了,它在我的项目中消失了。

当前版本

gulp -v
[11:26:35] CLI version 3.9.1
[11:26:35] Local version 4.0.0
Run Code Online (Sandbox Code Playgroud)

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

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

类型错误:无法在 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) at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3) 启动时 (internal/bootstrap/node.js:283:19)

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

  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 文件,如下所示:

node ./node_modules/gulp/bin/gulp.js my-task
Run Code Online (Sandbox Code Playgroud)

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

什么不起作用

如果我使用以下命令:

gulp my-task
Run Code Online (Sandbox Code Playgroud)

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

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

Eri*_*ard 3

我最近刚刚从 Gulp 3 升级到 4,并且遇到了非常相似的问题 ( TypeError: Cannot read property 'task' of undefined)。显然,这是由方法的更改引起的,该方法(在版本 3 中)将在定义任务后task返回对对象本身的引用,但现在(在版本 4 中)不返回任何内容,从而在尝试链接时导致此错误任务顺利。gulp

对我来说,解决方法是使用导出重新创建我的 gulpfile 。

由于您没有在原来的问题中包含 gulpfile,我不知道这是否是您的问题,但由于这个问题是在我寻找从 v3 到 v4 的跳跃的一些指导时出现的,我想分享可能会有用。