2016-07-08 16 views
0

Ich verwende TFS Source Control und 2015 TFS Build Server.Warum scheitert die NPM-Cache-Bereinigung zufällig mit EPERM auf dem TFS-Build-Server?

Ich Setup-Skript zum Erstellen auf einem Build-Server. Der erste Schritt besteht darin, den Cache zu löschen, da andernfalls ein zufälliger Fehler aufgrund eines zufälligen Fehlers auftreten würde.

Aber jetzt, fast die Hälfte der Zeit gibt es diese neue Fehler:

2016-07-08T19:39:32.2041280Z > npm cache clean 

2016-07-08T19:39:40.5819362Z npm ERR! Windows_NT 6.3.9600 

2016-07-08T19:39:40.5819362Z npm ERR! argv "C:\\nodeJs\\node.exe" "C:\\nodeJs\\node_modules\\npm\\bin\\npm-cli.js" "cache" "clean" 

2016-07-08T19:39:40.5819362Z npm ERR! node v4.4.7 

2016-07-08T19:39:40.5819362Z npm ERR! npm v2.15.8 

2016-07-08T19:39:40.5819362Z npm ERR! path C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\npm-cache 

2016-07-08T19:39:40.5819362Z npm ERR! code EPERM 

2016-07-08T19:39:40.5819362Z npm ERR! errno -4048 

2016-07-08T19:39:40.5819362Z npm ERR! syscall rmdir 

2016-07-08T19:39:40.6288231Z npm ERR! Error: EPERM: operation not permitted, rmdir 'C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\npm-cache' 

2016-07-08T19:39:40.6288231Z npm ERR!  at Error (native) 

2016-07-08T19:39:40.6288231Z npm ERR! { [Error: EPERM: operation not permitted, rmdir 'C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\npm-cache'] 

2016-07-08T19:39:40.6288231Z npm ERR! errno: -4048, 

2016-07-08T19:39:40.6288231Z npm ERR! code: 'EPERM', 

2016-07-08T19:39:40.6288231Z npm ERR! syscall: 'rmdir', 

2016-07-08T19:39:40.6288231Z npm ERR! path: 'C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Roaming\\npm-cache' } 

2016-07-08T19:39:40.6288231Z npm ERR! 

2016-07-08T19:39:40.6288231Z npm ERR! Please try running this command again as root/Administrator. 

2016-07-08T19:39:40.6757133Z npm ERR! Please include the following file with any support request: 

2016-07-08T19:39:40.6757133Z npm ERR!  C:\Work\9\s\Atlas.Prototype\src\starterproject\npm-debug.log 

2016-07-08T19:39:40.7382460Z npm ERR! Windows_NT 6.3.9600 

2016-07-08T19:39:40.7382460Z npm ERR! argv "C:\\nodeJs\\node.exe" "C:\\nodeJs\\node_modules\\npm\\bin\\npm-cli.js" "run" "cleancache" 

2016-07-08T19:39:40.7382460Z npm ERR! node v4.4.7 

2016-07-08T19:39:40.7382460Z npm ERR! npm v2.15.8 

2016-07-08T19:39:40.7382460Z npm ERR! code ELIFECYCLE 

2016-07-08T19:39:40.7382460Z npm ERR! [email protected] cleancache: `npm cache clean` 

2016-07-08T19:39:40.7382460Z npm ERR! Exit status 4294963248 

2016-07-08T19:39:40.7382460Z npm ERR! 

2016-07-08T19:39:40.7382460Z npm ERR! Failed at the [email protected] cleancache script 'npm cache clean'. 

2016-07-08T19:39:40.7382460Z npm ERR! This is most likely a problem with the angular2 package, 

2016-07-08T19:39:40.7382460Z npm ERR! not with npm itself. 

2016-07-08T19:39:40.7538723Z npm ERR! Tell the author that this fails on your system: 

2016-07-08T19:39:40.7538723Z npm ERR!  npm cache clean 

Wie ist es möglich, dass es „Erlaubnis“ Fehler gibt, wenn laufen, aber wenn laufen wieder gelingt es, und wieder, wenn läuft ein drittes Mal ist es zufällig?

Was wären die Schritte, um sicherzustellen, dass npm cache clean zu 100% erfolgreich ist?

+1

Builds läuft parallel vielleicht? –

+0

Haben Sie jemals eine Lösung für dieses Problem gefunden? Ich sehe es mit Knoten 6.9.5 und npm v3.10.10. – Avalanchis

+0

Nein, habe ich nicht. Die einzige Lösung, die ich gefunden habe, war zu vermeiden, irgendeinen Knoten auf einem Windows-Server aufzubauen. Jetzt, auf 'git commit', habe ich einen Hook, der einfach ein lokales .Zip meines gesamten Projekts erzeugt (mit einem node_modul namens' zip-dir', können Sie auch 'gulp-zip' verwenden). Die Zip-Datei ist also vorgefertigt und kann sofort bereitgestellt werden. Anschließend wird sie an den TFS-Bereitstellungsserver übergeben. TFS extrahiert und kopiert diese Dateien dann einfach direkt auf den Webserver. Nicht das Beste, aber es funktioniert für ein sehr kleines Team. – TetraDev

Antwort

0

Als das Problem der Zufall, kann es nicht durch Erlaubnis verursacht werden.

Versuchen Sie, die npm auf die neueste Version zu aktualisieren, um festzustellen, ob das Problem weiterhin besteht. Wie @ Christian.K bereits erwähnt hat, können Sie prüfen, ob paralleler Build vorhanden ist.

+0

gute Idee, ich werde das überprüfen, danke – TetraDev