带有gulp v.4.0.0的VSTS

时间:2018-09-04 15:16:50

标签: node.js gulp azure-devops

我有一个项目的gulp版本。以前我们使用的是3.9.1版,我们正在进行暂时性的更新。

更新后,我已经解决了所有本地问题,并在另一台计算机上测试了该项目(也在那里更新了已安装的gulp)。

但是,我们的自动部署与我不同意。

签到后,我们的VSTS将执行以下步骤

  1. 安装npm
  2. 执行命令
  3. 构建项目

但是,这会产生以下错误。

Working directory changed to D:\a\1\s\MVC
Using gulpfile D:\a\1\s\MVC\gulpfile.js
C:\NPM\Modules\node_modules\gulp\bin\gulp.js:129
gulpInst.start.apply(gulpInst, toRun);
     ^
     TypeError: Cannot read property 'apply' of undefined
at C:\NPM\Modules\node_modules\gulp\bin\gulp.js:129:20
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

此错误似乎是由于gulp的cli版本过时引起的。但是我不知道如何使用VSTS进行更新。

具体问题

如何在VSTS中更新gulp cli

我已经做了什么?

经过一番检查,我发现所安装的npm版本非常旧(3.10.8)。我拖入了一个nodejs安装程序,它将更新到最新版本,并为我提供了最新版本的nodejs,还有一个更新的npm(5.6.0)版本,我已经在二手计算机上使用它来更新cli版本。但是我不知道如何在VSTS中做到这一点。

3 个答案:

答案 0 :(得分:1)

似乎您正在使用Hosted Agent,其安装的npm版本是3.10.8。您只需要在构建定义中添加“节点工具安装程序”任务并将其设置为使用“ 8.x”版本。它将安装8.x版本,其中包括npm 5.6.0。 enter image description here

节点工具安装程序任务之前的

npm版本: enter image description here 节点工具安装程序任务后的npm版本: enter image description here

答案 1 :(得分:0)

尝试通过NPM任务安装/更新gulp-cli:

enter image description here

顺便说一句,package.json中的软件包将安装在当前项目/文件夹中而不是全局中,您需要通过npm命令(package.json的scripts属性)调用gulp命令,以在当前项目/文件夹中使用软件包或指定直接路径(例如./node_modules/gulp/bin/gulp)

答案 2 :(得分:0)

我发现对我有用的解决方案是将管道从Hosted更改为Hosted VS2017

我已经完成了将Gulp升级到4.0的PR,PR构建完成了,但是CI构建失败了,结果很奇怪。经过大量搜索后,我将其范围缩小到已经设置为Hosted VS2017的PR版本(它也在构建C#项目,也需要它们),而CI版本仅在Gulp构建并且设置为{{ 1}}。

enter image description here