2014-04-03 195 views
2

我在Openshift PaaS中使用Nodejs 0.10。我有一個Npm json包,具有諸如Gulp之類的依賴關係,可以構建諸如Gulp-sass,Gulp-usemin,Bower等任務。它們在構建action_hook腳本中啓動。Openshift和建設與吞嚥

Jenkins上的日誌顯示依賴Gulp-utils的錯誤,版本爲:^ 2.2.0,但Opensift上的Npm不喜歡這個字符^,這個依賴不在我的package.json中,而是在孩子的內部。

npm ERR! Error: No compatible version found: [email protected]'^2.2.0'

下載過期間

,一個ENOTEMPTY錯誤:

npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/var/lib/openshift/xxxxxx/app-root/runtime/repo/node_modules/gulp-bundle/node_modules/glob/test'

ENOENT錯誤:

npm ERR! Error: ENOENT, lstat '/var/lib/openshift/xxxxxx/app-root/runtime/repo/node_modules/gulp-notify/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/README.md'

EEXIST錯誤:

npm ERR! EEXIST, mkdir '/var/lib/openshift/xxxxxx/app-root/runtime/repo/node_modules/gulp-notify/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys' File exists, Move it away, and try again.

存檔文物後,Jenkins完成了FAILURE。使用Nodejs v0.10.26進行測試,但存在類似的錯誤。

回答

0

Meybe您需要將您的npm升級到最新版本。 舊版本的npm不支持包的版本前面的「^」字符。 您可以通過命令的問題在控制檯檢查NPM版本:

npm --version 

通過這個帖子,新​​公共管理的最新版本1.4.21是

您可以使用下面的命令來安裝/升級NPM

curl -L https://npmjs.org/install.sh | sudo sh 

如果您已經是root用戶,sudo不是必須的。 如果你遇到SH錯誤,如HTML不是命令,請執行下列操作:

wget https://npmjs.org/install.sh 
chmod +x install.sh 
sudo ./install.sh 

祝您好運!