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

时间:2019-01-24 18:41:18

标签: 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

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

  

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

     

TypeError:无法读取未定义的属性“ apply”       在C:\ Program Files \ nodejs \ node_modules \ gulp \ bin \ gulp.js:129:20       在process._tickCallback(内部/进程/next_tick.js:61:11)       在Function.Module.runMain(内部/模块/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
    • 之后,我仅在dev中全局安装gulp-cli,在本地安装gulp v4
  2. 关闭所有内容,然后重新启动计算机,以寻求魔术修复,没有运气

编辑:

也尝试了以下失败的尝试

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

什么起作用

似乎没有正确使用cli版本的问题。 如果我明确使用项目本地node_modules文件夹中的gulp文件,如下所示:

node ./node_modules/gulp/bin/gulp.js my-task

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

什么不起作用

如果我使用以下命令:

gulp my-task

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

我不确定从这里去哪里,我有一种解决方法,但是当我尝试同时使用最新稳定版本的gulp和cli时,无法弄清楚为什么gulp快死了。

1 个答案:

答案 0 :(得分:1)

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

对我来说,解决方法是重新创建gulpfile nothing

由于您没有在原始问题中包括您的gulpfile,所以我不知道这是否是您的问题,但是由于这个问题是在我寻找一些实现从v3到v4的指针时提出的,我认为分享可能会有用。