Instalace a publikování balíčků npm na vzdálený server nepodporuje cestu UNC
Rozumí někdo tomu, proč mám problém s cestou pri instalaci npm na vzdálený server
C:\Windows\system32\cmd.exe /D /S /C ""C:\Program Files\nodejs\npm.cmd" install"
'\\phasp13jm2\UICypress'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
npm WARN saveError ENOENT: no such file or directory, open 'C:\Windows\package.json'
npm WARN saveError EPERM: operation not permitted, open 'C:\Windows\package-lock.json.527580596'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Windows\package.json'
npm WARN Windows No description
npm WARN Windows No repository field.
npm WARN Windows No README data
npm WARN Windows No license field.
Celý log:
Starting: Install packages
==============================================================================
Task : npm
Description : Install and publish npm packages, or run an npm command. Supports npmjs.com and authenticated registries like Azure Artifacts.
Version : 1.169.2
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/npm
==============================================================================
C:\Windows\system32\cmd.exe /D /S /C ""C:\Program Files\nodejs\npm.cmd" --version"
6.14.10
C:\Windows\system32\cmd.exe /D /S /C ""C:\Program Files\nodejs\npm.cmd" config list"
'\\phasp13jm2\UICypress'
; cli configs
CMD.EXE was started with the above path as the current directory.
metrics-registry = "https://registry.npmjs.org/"
UNC paths are not supported. Defaulting to Windows directory.
scope = ""
user-agent = "npm/6.14.10 node/v12.20.1 win32 x64"
; environment configs
userconfig = "C:\\agent\\_work\\5\\npm\\1884.npmrc"
; builtin config undefined
prefix = "C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\Windows
; HOME = C:\Windows\ServiceProfiles\NetworkService
; "npm config ls -l" to show all defaults.
C:\Windows\system32\cmd.exe /D /S /C ""C:\Program Files\nodejs\npm.cmd" install"
'\\phasp13jm2\UICypress'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
npm WARN saveError ENOENT: no such file or directory, open 'C:\Windows\package.json'
npm WARN saveError EPERM: operation not permitted, open 'C:\Windows\package-lock.json.527580596'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Windows\package.json'
npm WARN Windows No description
npm WARN Windows No repository field.
npm WARN Windows No README data
npm WARN Windows No license field.
Problém tam máš přímo napsaný:
Kdybys nevěděl, tak UNC path je právě to '\\phasp13jm2\UICypress'.
Ty zdvojený lomítka taky vypadají podezřele. Nebo jsou escapovaný?
to netuším. to tam dodal ten instalátor...
Aha, takže to bude asi tím, že on to neumí instalovat na cizí server. Asi by to zvládnul do složky, ale ne jinak na jiný server.
Možná by pomohlo sdělit, čeho vlastně chceš dosáhnout.
Snažím se po vytvoření nového buildu v DevOps, tento vzít a nahrát ho na server, kde mi běží Cypress pro automatické testy. Abych na něm ty testy mohl spustit. Nemáte s tím někdo zkušenosti jak se to dá udělat? Cypress umím, ale pátrám v tom nastavení DevOps, jak to přehrát.
Zkus být trochu konkrétnější. Build čeho konkrétně? Předpokládám, že si tam stahuješ zdrojáky z nějaké repository. Nechceš náhodou ten "npm install" spustit v adresáři, kam jsi je stáhnul?
Ano, v DevOps existuje repository do kterého se vytváří nový build. A já potřebuju přes Pipeline, také v DevOps, tento novy build vzít, nahrát na jiný server a následně na dálku z toho DevOps spustit testy. Má to 3 kroky. První je právě Instalace balíků a to je výše zmiňovaný problém. Druhý je samotný test a třetí report.
Pořád jsi dost nekonkrétní.
takto to vypadá v nastavení DevOps.
No to mi právě přijde, že je to kvůli tomuhle:
No podle toho obrazku to tak nevypadá. Je tam přece napsáno, že pracovní složka, kde je ten package.json je na tom serveru..
Ale zase tomu tak moc nerozumím.
Tak jasně, že je na serveru. Ale ta instalace taky běží na tom samém serveru. Není tak žádný důvod, proč používat UNC.
Nepouzivate ziadny git/svn, ze by si si zakazdym na ten server z neho stahoval najnovsie zdrojaky a pustal na to Cypress?
Pokud je problem jen v tom spusteni, tak to muzes obejit tim, ze ten balicek nakopirujes (unc pri kopirovani funguje) a pak jej spustis z nejake slozky, kam jsi jej nakopiroval
ze bych udelal nejaky jiny skript, který by mě to nakopíroval a pak v DevOps zařídil jen spuštění toho testu?
Ne, to bys v tom existujicim skriptu pridal radek, ktery to z te unc cesty nakopiruje na lokal a pak upravis spusteni, kde nahradis unc za lokalni cestu
Jeste me napadla moznost proste tu unc cestu namapovat jako disk (treba X:) a pak to muzes pouzit pro instalaci bez unc