2016-07-08 65 views
0

我正在使用TFS源代碼管理和2015年TFS生成服務器。爲什麼NPM Cache在TFS Build Server上隨EPERM一起隨機清理失敗?

我設置腳本在構建服務器上構建。第一步是清除緩存,因爲如果沒有,它會因隨機錯誤而隨機失敗。

但現在,幾乎有一半的時間就給出了這個新的錯誤:

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 

怎麼可能在運行時,它提供「權限」的錯誤,但再次運行時,它成功了,如果重新運行第三次是隨機的?

確保npm cache clean百分之百成功的步驟是什麼?

+1

構建並行運行也許? –

+0

你有沒有找到這個問題的解決方案?我在節點6.9.5和npm v3.10.10看到它。 – Avalanchis

+0

不,我沒有。我發現的唯一解決方案是避免在Windows服務器上構建任何與節點相關的節點。現在,在'git commit'上,我有一個鉤子,它可以簡單地創建一個本地.zip(使用稱爲zip-dir的node_module,也可以使用'gulp-zip')。因此,該zip是預構建的,可以部署,然後將其提交給部署TFS服務器。然後TFS直接提取並將這些文件直接複製到Web服務器。不是最好的,但它適用於一個非常小的團隊。 – TetraDev

回答

0

由於問題是隨機的,它可能不是由許可引起的。

嘗試將npm升級到最新版本,以查看問題是否仍然存在。另外,正如@ Christian.K所提到的,你可以檢查是否有並行構建。

+0

好主意,我會檢查出來,謝謝 – TetraDev