[英]Running NPM on a self-hosted VSO Agent
我在Azure上使用Azure VM和Visual Studio Release插件設置了VSO代理。 我還安裝了最新版本的node.js(使用NVM for windows)。 我在安裝VSO代理時使用了默認帳戶,因為我用於遠程桌面的憑據不起作用。
我可以遠程進入機器並運行我試圖從VSO運行的構建腳本。 我也可以用它運行純粹的.NET構建並且很好。 我的問題在於使用npm來安裝我的軟件包並運行構建。
我已經像這樣建立了對構建的需求:
npm | exists
我從控制面板上設置了VSO代理的功能,如下所示:
npm | C:\\Program Files\\nodejs\\npm.cmd
也試過了
npm | C:\\Program Files\\nodejs
我可以在該文件夾中看到npm.cmd,當我遠程使用該路徑時,我可以運行npm。 我還根據這個問題重新啟動了VSO代理服務:
重啟服務器並完成了“更新所有代理”幾次。 我的路徑中也有npm,並且能夠在登錄時正常執行。
編輯:
錯誤信息:
npm : The term 'npm' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\work-folder\1\s\azure-deploy.ps1:24 char:1
+ npm update
+ ~~~
+ CategoryInfo : ObjectNotFound: (npm:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
我也嘗試添加如下所述的行:
$env:Path += ";C:\\Program Files\\nodejs\\"
同樣的錯誤。 我的$ env的Write-Host
:該命令后的路徑寫入給出:
C:\Application Intallers\agent (1)\agent\worker\Modules\Microsoft.TeamFoundation.DistributedTask.Task.Internal\NativeBinaries\amd64;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Users\propertyplotdev\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin;C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy;C:\Program Files\nodejs;C:\Windows\ServiceProfiles\LocalService\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin;C:\Windows\ServiceProfiles\LocalService\.dnx\bin;C:\Program Files\nodejs\
C:\\Program Files\\nodejs\\npm.cmd
和C:\\Program Files\\nodejs\\node.js
存在,NETWORK SERVICE對它們具有權限。 (以及Adiministrators,SYSTEM和我的登錄)
解決方案是使用常規安裝程序安裝node.js:
https://nodejs.org/en/download/
然后這工作。 還有其他問題但是這個問題的直接問題是通過不使用nvm來安裝節點來解決的。 然后,我可以在VSO構建定義界面中添加npm任務。
確保npm安裝在“C:\\ Program Files \\ nodejs \\”文件夾中,然后在PowerShell腳本中添加以下內容:
$env:Path += ";C:\Program Files\nodejs\"
嘗試從以下位置添加run npm命令構建任務:
添加構建步驟 - >添加任務 - >包 - > npm(運行npm命令)
並將install as as 命令添加到web-project的根 目錄作為工作目錄
否則,請嘗試添加以下功能:
node.js | C:\Program Files\nodejs\node.exe
和:
npm | C:\Program Files\nodejs\npm.cmd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.