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
百分之百成功的步驟是什麼?
構建並行運行也許? –
你有沒有找到這個問題的解決方案?我在節點6.9.5和npm v3.10.10看到它。 – Avalanchis
不,我沒有。我發現的唯一解決方案是避免在Windows服務器上構建任何與節點相關的節點。現在,在'git commit'上,我有一個鉤子,它可以簡單地創建一個本地.zip(使用稱爲zip-dir的node_module,也可以使用'gulp-zip')。因此,該zip是預構建的,可以部署,然後將其提交給部署TFS服務器。然後TFS直接提取並將這些文件直接複製到Web服務器。不是最好的,但它適用於一個非常小的團隊。 – TetraDev