在vsts托管计算机上,node-gyp重建失败

时间:2017-11-09 01:01:44

标签: azure-pipelines node-gyp

在VSTS托管计算机上执行npm install时,对于contextify软件包,node-gyp重建失败。

2017-11-09T00:16:37.9310105Z d:\a\1\s\Client\node_modules\contextify>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild ) 
2017-11-09T00:16:39.2998078Z gyp ERR! configure error 
2017-11-09T00:16:39.3018079Z gyp ERR! stack Error: Python executable "C:\Program Files\Python36\python.EXE" is v3.6.2, which is not supported by gyp.
2017-11-09T00:16:39.3028072Z gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at failPythonVersion (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:454:14)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:443:9
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at ChildProcess.exithandler (child_process.js:197:7)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at emitTwo (events.js:106:13)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at maybeClose (internal/child_process.js:877:16)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at Socket.<anonymous> (internal/child_process.js:334:11)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at emitOne (events.js:96:13)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at Socket.emit (events.js:188:7)
2017-11-09T00:16:39.3028072Z gyp ERR! stack     at Pipe._handle.close [as _onclose] (net.js:498:12)

该机器是Hosted VS2017。 node-gyp需要安装python 2.7和VS2015构建工具。

VSTS托管计算机是否支持node-gyp,还是我必须维护自己的构建计算机?

构建定义(我已删除识别字符串)

    {
  "options": [
    {
      "enabled": false,
      "definition": {
        "id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
      },
      "inputs": {
        "branchFilters": "[\"+refs/heads/*\"]",
        "additionalFields": "{}"
      }
    },
    {
      "enabled": false,
      "definition": {
        "id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
      },
      "inputs": {
        "workItemType": "60151",
        "assignToRequestor": "true",
        "additionalFields": "{}"
      }
    },
    {
      "enabled": false,
      "definition": {
        "id": "57578776-4c22-4526-aeb0-86b6da17ee9c"
      },
      "inputs": {}
    }
  ],
  "variables": {
    "system.debug": {
      "value": "false",
      "allowOverride": true
    }
  },
  "retentionRules": [
    {
      "branches": [
        "+refs/heads/*"
      ],
      "artifacts": [],
      "artifactTypesToDelete": [
        "FilePath",
        "SymbolStore"
      ],
      "daysToKeep": 10,
      "minimumToKeep": 1,
      "deleteBuildRecord": true,
      "deleteTestResults": true
    }
  ],
  "_links": {
    "self": {
      "href": "<link here>"
    },
    "web": {
      "href": "<link here>"
    },
    "editor": {
      "href": "<link here>"
    }
  },
  "comment": "test",
  "jobAuthorizationScope": 1,
  "jobTimeoutInMinutes": 60,
  "jobCancelTimeoutInMinutes": 5,
  "process": {
    "phases": [
      {
        "dependencies": [],
        "steps": [
          {
            "environment": {},
            "enabled": true,
            "continueOnError": false,
            "alwaysRun": false,
            "displayName": "ClientLibraries npm install",
            "timeoutInMinutes": 0,
            "condition": "succeeded()",
            "refName": "Npm1",
            "task": {
              "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
              "versionSpec": "1.*",
              "definitionType": "task"
            },
            "inputs": {
              "command": "install",
              "workingDir": "Client",
              "verbose": "false",
              "customCommand": "",
              "customRegistry": "useNpmrc",
              "customFeed": "",
              "customEndpoint": "",
              "publishRegistry": "useExternalRegistry",
              "publishFeed": "",
              "publishEndpoint": ""
            }
          },
          {
            "environment": {},
            "enabled": true,
            "continueOnError": false,
            "alwaysRun": false,
            "displayName": "Client gulp ",
            "timeoutInMinutes": 0,
            "condition": "succeeded()",
            "refName": "Gulp3",
            "task": {
              "id": "b82cfbe4-34f9-40f5-889e-c8842ca9dd9d",
              "versionSpec": "0.*",
              "definitionType": "task"
            },
            "inputs": {
              "gulpFile": "Client/gulpfile.js",
              "targets": "",
              "arguments": "",
              "cwd": "",
              "gulpjs": "node_modules/gulp/bin/gulp.js",
              "publishJUnitResults": "false",
              "testResultsFiles": "**/TEST-*.xml",
              "testRunTitle": "",
              "enableCodeCoverage": "false",
              "testFramework": "Mocha",
              "srcFiles": "",
              "testFiles": "test/*.js"
            }
          },
          {
            "environment": {},
            "enabled": true,
            "continueOnError": false,
            "alwaysRun": false,
            "displayName": "SharedApp npm install",
            "timeoutInMinutes": 0,
            "condition": "succeeded()",
            "refName": "Npm2",
            "task": {
              "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
              "versionSpec": "1.*",
              "definitionType": "task"
            },
            "inputs": {
              "command": "install",
              "workingDir": "SharedApp",
              "verbose": "false",
              "customCommand": "",
              "customRegistry": "useNpmrc",
              "customFeed": "",
              "customEndpoint": "",
              "publishRegistry": "useExternalRegistry",
              "publishFeed": "",
              "publishEndpoint": ""
            }
          },
          {
            "environment": {},
            "enabled": true,
            "continueOnError": false,
            "alwaysRun": false,
            "displayName": "SharedApp gulp ",
            "timeoutInMinutes": 0,
            "condition": "succeeded()",
            "refName": "Gulp4",
            "task": {
              "id": "b82cfbe4-34f9-40f5-889e-c8842ca9dd9d",
              "versionSpec": "0.*",
              "definitionType": "task"
            },
            "inputs": {
              "gulpFile": "SharedApp/gulpfile.js",
              "targets": "",
              "arguments": "",
              "cwd": "",
              "gulpjs": "node_modules/gulp/bin/gulp.js",
              "publishJUnitResults": "false",
              "testResultsFiles": "**/TEST-*.xml",
              "testRunTitle": "",
              "enableCodeCoverage": "false",
              "testFramework": "Mocha",
              "srcFiles": "",
              "testFiles": "test/*.js"
            }
          },
          {
            "environment": {},
            "enabled": true,
            "continueOnError": false,
            "alwaysRun": false,
            "displayName": "Build MPos",
            "timeoutInMinutes": 0,
            "condition": "succeeded()",
            "refName": "MSBuild5",
            "task": {
              "id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
              "versionSpec": "1.*",
              "definitionType": "task"
            },
            "inputs": {
              "solution": "MPos/MPos.jsproj",
              "msbuildLocationMethod": "version",
              "msbuildVersion": "latest",
              "msbuildArchitecture": "x86",
              "msbuildLocation": "",
              "platform": "",
              "configuration": "",
              "msbuildArguments": "",
              "clean": "false",
              "maximumCpuCount": "false",
              "restoreNugetPackages": "false",
              "logProjectEvents": "false",
              "createLogFile": "false"
            }
          }
        ],
        "variables": {},
        "name": "Build",
        "target": {
          "demands": [
            "npm"
          ],
          "executionOptions": {
            "type": 0
          },
          "allowScriptsAuthAccessOption": false,
          "type": 1
        },
        "jobAuthorizationScope": "projectCollection",
        "jobCancelTimeoutInMinutes": 1
      }
    ],
    "type": 1
  },
  "repository": {
    "properties": {
      "cleanOptions": "3",
      "labelSources": "0",
      "labelSourcesFormat": "$(build.buildNumber)",
      "reportBuildStatus": "true",
      "gitLfsSupport": "false",
      "skipSyncSource": "false",
      "checkoutNestedSubmodules": "false",
      "fetchDepth": "0"
    },
    "id": "62d6c3ab-a240-4391-ab84-8bf922ce7c82",
    "type": "TfsGit",
    "name": "<name here>",
    "url": "<link here>",
    "defaultBranch": "refs/heads/freedom",
    "clean": "true",
    "checkoutSubmodules": false
  },
  "processParameters": {},
  "quality": 1,
  "authoredBy": {
    "id": "36711d94-f137-45f1-8948-8d025a1d344d",
    "displayName": "<My name>",
    "uniqueName": "<my email>",
    "url": "<link here>",
    "imageUrl": "<link here>"
  },
  "drafts": [],
  "queue": {
    "id": 343,
    "name": "Hosted VS2017",
    "pool": {
      "id": 118,
      "name": "Hosted VS2017",
      "isHosted": true
    }
  },
  "id": 13963,
  "name": "<name>",
  "url": "<link here>",
  "uri": "vstfs:///Build/Definition/13963",
  "path": "\\Retail",
  "type": 2,
  "queueStatus": 0,
  "revision": 3,
  "createdDate": "2017-11-09T00:15:07.623Z",
  "project": {
    "id": "2bdc3060-cc75-4bb4-8e85-9ce981e841fa",
    "name": "<name>",
    "url": "<link here>",
    "state": "wellFormed",
    "revision": 288029,
    "visibility": 1
  }
}

1 个答案:

答案 0 :(得分:0)

Python 2.7.13位于此位置:C:\Python27amd64在Hosted 2017 Agent上。但是,该代理上未安装VS2015构建工具。因此,您必须使用Hosted Agent而不是Hosted 2017 Agent来运行此版本。