Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 带gulp v.4.0.0的VST_Node.js_Gulp_Azure Devops - Fatal编程技术网

Node.js 带gulp v.4.0.0的VST

Node.js 带gulp v.4.0.0的VST,node.js,gulp,azure-devops,Node.js,Gulp,Azure Devops,我有一个项目的吞咽版本。之前我们使用的是3.9.1版,我们正在进行不间断的更新 更新后,我已经修复了所有本地问题,并在不同的计算机上测试了该项目(在更新安装的gulp之后),它工作正常 但是,我们的自动部署不符合我的要求 签入后,我们的VSTS执行以下步骤 安装npm 执行命令 建设项目 但是,这会产生以下错误 Working directory changed to D:\a\1\s\MVC Using gulpfile D:\a\1\s\MVC\gulpfile.js C:\NPM\Modu

我有一个项目的吞咽版本。之前我们使用的是3.9.1版,我们正在进行不间断的更新

更新后,我已经修复了所有本地问题,并在不同的计算机上测试了该项目(在更新安装的gulp之后),它工作正常

但是,我们的自动部署不符合我的要求

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

  • 安装npm
  • 执行命令
  • 建设项目
  • 但是,这会产生以下错误

    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版本引起的。但我不知道如何使用VST更新它

    具体问题

    如何在VSTS中更新gulp cli

    我已经做了什么?


    经过一些检查,我看到安装的npm版本非常旧(3.10.8)。我引入了一个nodejs安装程序,该安装程序更新到最新版本,并为我提供了nodejs的最新版本,以及一个更新得多的npm(5.6.0)版本,我在手持计算机上使用它来更新cli版本。但是,我不知道如何在VSTS中执行此操作。

    您似乎正在使用已安装的npm版本为3.10.8的托管代理。您只需要在构建定义中添加一个节点工具安装程序任务,并将其设置为使用“8.x”版本。它将安装包含NPM5.6.0的8.x版本。

    节点工具安装程序任务之前的npm版本: 节点工具安装程序任务后的npm版本:

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


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

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

    我已经完成了一个将Gulp升级到4.0的PR,并且PR构建完成了,但是CI构建失败了,结果很奇怪。经过大量搜索,我将其缩小到PR构建,该构建已经设置为
    托管VS2017
    (也需要构建C#项目),而CI构建只进行了Gulp构建,并设置为
    托管


    您的package.json需要什么版本的gulp?我想这就是你的问题package.json要求“^4.0.0”如果你使用package.json脚本,你可以调用本地gulp或直接使用./node_modules/gulp/bin/gulp gulpfile.js调用,这样你就不用使用系统CLI,可以定义准确的版本,因为你已经有了^4.0.0同样的问题:(我可以在本地运行此功能,但我不知道使用什么命令在VSTS中运行此功能。我今天正在查看此功能,如果我发现了此功能,我会告诉您我是否解决了此问题。我为我的延迟响应道歉,生病,并停止运行了几天。此建议有助于解决我的问题。此建议的关键是我应该做什么它位于源代码管理的根文件夹中,而不是在项目文件夹中。