使用NPM安装包会导致依赖性循环

基本信息:

System: OS X 10.9.2 Npm version: 1.4.9 Node version: v0.10.28 Ruby Version : ruby ​2.1.1p76 ( 2/24/2014 Revision 45161 ) [ x86_64- darwin12.0 ] 

发生什么事情是,当我运行npm install -g bower或者sudo nom install -g命令或者bower变成了一个有错误但未完成的循环时,执行回滚并重新启动(我猜)。

也恰好被设置为下载其他依赖,如karmamochachai (我不知道是否会成为bower依赖关系),但问题不仅在于,而且恰巧试图安装任何依赖关系考试: yeomangrunt等…

我试过下面的命令,但问题依然存在:

 npm cache clean npm cache clear 

这是一个部分 – debug.log npm文件:

 32016 verbose etag " 9CS1TTNJ9VSLF7WEYXSRZ8EMQ " 32017 http GET https://registry.npmjs.org/grunt-contrib-jshint 32018 gunzTarPerm extractEntry silly example / test / test- example.js 32019 gunzTarPerm extractEntry silly lib / main.js 32020 gunzTarPerm extractEntry silly lib / tap -browser- harness.js 32021 gunzTarPerm extractEntry silly lib / tap- consumer.js 32022 gunzTarPerm extractEntry silly lib / tap -cov - html.js 32023 gunzTarPerm extractEntry silly lib / tap- assert.js 32024 gunzTarPerm extractEntry silly lib / tap- harness.js 32025 gunzTarPerm extractEntry silly lib / tap- producer.js 32026 gunzTarPerm extractEntry silly lib / tap- results.js 32027 gunzTarPerm extractEntry silly lib / tap- runner.js 32028 gunzTarPerm extractEntry silly lib / tap- test.js 32029 gunzTarPerm extractEntry silly lib / tap -global- harness.js 32030 gunzTarPerm silly extractEntry AUTHORS 32031 gunzTarPerm silly extractEntry coverage-example/lib/bar.js 32032 gunzTarPerm silly extractEntry coverage-example/lib/foo.js 32033 gunzTarPerm silly extractEntry coverage-example/test/bar.test.js 32034 gunzTarPerm silly extractEntry coverage-example/test/baz.test.js 32035 gunzTarPerm silly extractEntry coverage-example/test/foo.test.js 32036 gunzTarPerm silly extractEntry bin / tap- http.js 32037 gunzTarPerm silly extractEntry bin / tap- reader.js 32038 gunzTarPerm silly extractEntry bin / tap.js 32039 gunzTarPerm extractEntry silly test / buffer_compare.js 32040 gunzTarPerm extractEntry silly test / expose- gc- test.js 32041 gunzTarPerm extractEntry silly test / independent- timeouts.js 32042 gunzTarPerm extractEntry silly test / isolated- conf- test.js 32043 gunzTarPerm extractEntry silly test / meta- test.js 32044 gunzTarPerm extractEntry silly test / timeout.js 32045 gunzTarPerm extractEntry silly test / common.js 32046 gunzTarPerm extractEntry silly test / test- test.js 32047 gunzTarPerm extractEntry silly test / output- childtest - description.js 32048 gunzTarPerm extractEntry silly test / result - trap.js 32049 gunzTarPerm extractEntry silly test / segv.js 32050 extractEntry test gunzTarPerm silly / trivial - success.js 32051 gunzTarPerm extractEntry silly test / single - test- harness- with- plan.js 32052 gunzTarPerm extractEntry silly test / deep.js 32053 gunzTarPerm extractEntry silly test / single - harness- test.js 32054 gunzTarPerm extractEntry silly test / nested- test.js 32055 gunzTarPerm extractEntry silly test / undefined_indented.js 32056 gunzTarPerm extractEntry silly test / non -tap- output.js 32057 gunzTarPerm extractEntry silly test / not- executed.sh 32058 gunzTarPerm extractEntry silly test / executed.sh 32059 gunzTarPerm extractEntry silly test / end -exception / t.js 32060 gunzTarPerm silly extractEntry test-disabled/bailout.js 32061 gunzTarPerm silly extractEntry test-disabled/foo.js 32062 gunzTarPerm silly extractEntry test-disabled/t.js 32063 gunzTarPerm silly extractEntry node_modules / inherits / package.json 32064 gunzTarPerm silly extractEntry node_modules / inherits / README.md 32065 gunzTarPerm silly extractEntry node_modules / inherits / LICENSE 32066 gunzTarPerm silly extractEntry node_modules / inherits / inherits - old.js 32067 gunzTarPerm silly extractEntry node_modules / inherits / inherits.js 32068 gunzTarPerm silly extractEntry node_modules / yamlish / package.json 32069 gunzTarPerm silly extractEntry node_modules / yamlish / README.md 32070 gunzTarPerm silly extractEntry node_modules / yamlish / LICENSE 32071 gunzTarPerm silly extractEntry node_modules / yamlish / yamlish.js 32072 gunzTarPerm extractEntry silly . Travis.yml 32073 gunzTarPerm silly extractEntry History.md 32074 gunzTarPerm extractEntry silly example / defined.js 32075 gunzTarPerm modified silly mode [ ' example / defined.js ' , 438, 420] 32076 gunzTarPerm silly extractEntry readme.markdown 32077 gunzTarPerm modified silly mode [ ' readme.markdown ' , 438, 420] Http 32078 200 https://registry.npmjs.org/should/-/should-1.2.2.tgz 304 32079 http https://registry.npmjs.org/tape 32080 registry.get silly cb [ 304, 32080 silly registry.get {date : ' Fri, 09 May 2014 1:25:21 GMT ' 32080 silly registry.get server: ' Apache ' 32080 registry.get silly via: '1 .1 varnish ' 32080 registry.get silly ' last-modified ': ' Fri, 09 May 2014 1:25:21 GMT ' 32080 registry.get silly ' cache-control ' : 'max -age = 1', 32080 registry.get silly etag ' " NOJCHGNZ4V3LSB5NIN9NV95R '" 32080 registry.get silly ' x -served -by ' , ' cache- am69 -AMS ' 32080 registry.get silly ' x -cache' , ' HIT ' , 32080 registry.get silly ' x -cache- hits' : '1' 32080 registry.get silly 'x- timer' , ' S1399598721.296903610 , VS0 , VE186 ' 32080 registry.get silly vary : 'Accept' , 32080 registry.get silly 'content - length' : '0 ' , 32080 registry.get silly ' keep- alive' , ' timeout = 10 , max = 50', 32080 registry.get silly connection : ' Keep- Alive '} ] 32081 verbose etag cache from tape 257f9ab3 silly lockfile - 32082 -2- lodash 4-1 lodash @ ~ 2.4.1 257f9ab3 silly lockfile - 32083 -2- lodash 4-1 lodash @ ~ 2.4.1 32084 gunzTarPerm extractEntry silly example / prof.js 32085 gunzTarPerm extractEntry silly example / top / 32086 gunzTarPerm extractEntry silly example / top / run.js 32087 gunzTarPerm extractEntry silly test / _files / inverted_section.js 

而这些是我在安装任何依赖的过程中所犯的一些错误:

 npm ERR ! Error: ENOENT , open '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-internal/CONTRIBUTING.md' npm ERR ! If you need help , you report this May * Entire * log , npm ERR ! including the npm and node versions , at: npm ERR ! <http://github.com/npm/npm/issues> npm ERR ! Darwin 13.1.0 System npm ERR ! command " node" " / usr / local / bin / npm " "install" "-g " " bower " npm ERR ! cwd / Users / joseapl / Sites npm ERR ! node- v v0.10.28 npm ERR ! npm - v 1.4.9 npm ERR ! path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-internal/CONTRIBUTING.md npm ERR ! code ENOENT npm ERR ! errno 34 npm ERR ! Error: ENOENT , lstat '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-nodeunit/Gruntfile.js' npm ERR ! If you need help , you report this May * Entire * log , npm ERR ! including the npm and node versions , at: npm ERR ! <http://github.com/npm/npm/issues> npm ERR ! Darwin 13.1.0 System npm ERR ! command " node" " / usr / local / bin / npm " "install" "-g " " bower " npm ERR ! cwd / Users / joseapl / Sites npm ERR ! node- v v0.10.28 npm ERR ! npm - v 1.4.9 npm ERR ! path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-nodeunit/Gruntfile.js npm ERR ! fstream_path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-nodeunit/Gruntfile.js npm ERR ! File fstream_type npm ERR ! FileWriter fstream_class npm ERR ! code ENOENT npm ERR ! errno 34 npm ERR ! fstream_stack / usr / local / lib / node_modules / npm / node_modules / fstream / lib / writer.js : 284:26 npm ERR ! fstream_stack Object.oncomplete ( fs.js : 107:15 ) npm ERR ! Error: ENOENT , lstat '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/istanbul/test/instrumentation/test-for.js' npm ERR ! If you need help , you report this May * Entire * log , npm ERR ! including the npm and node versions , at: npm ERR ! <http://github.com/npm/npm/issues> npm ERR ! Darwin 13.1.0 System npm ERR ! command " node" " / usr / local / bin / npm " "install" "-g " " bower " npm ERR ! cwd / Users / joseapl / Sites npm ERR ! node- v v0.10.28 npm ERR ! npm - v 1.4.9 npm ERR ! path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/istanbul/test/instrumentation/test-for.js npm ERR ! fstream_path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/istanbul/test/instrumentation/test-for.js npm ERR ! File fstream_type npm ERR ! FileWriter fstream_class npm ERR ! code ENOENT npm ERR ! errno 34 npm ERR ! fstream_stack / usr / local / lib / node_modules / npm / node_modules / fstream / lib / writer.js : 284:26 npm ERR ! fstream_stack Object.oncomplete ( fs.js : 107:15 ) npm ERR ! Error: ENOENT , lstat '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-jshint/tasks/jshint.js' npm ERR ! If you need help , you report this May * Entire * log , npm ERR ! including the npm and node versions , at: npm ERR ! <http://github.com/npm/npm/issues> npm ERR ! Darwin 13.1.0 System npm ERR ! command " node" " / usr / local / bin / npm " "install" "-g " " bower " npm ERR ! cwd / Users / joseapl / Sites npm ERR ! node- v v0.10.28 npm ERR ! npm - v 1.4.9 npm ERR ! path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-jshint/tasks/jshint.js npm ERR ! fstream_path /usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/grunt-contrib-jshint/tasks/jshint.js npm ERR ! File fstream_type npm ERR ! FileWriter fstream_class npm ERR ! code ENOENT npm ERR ! errno 34 npm ERR ! fstream_stack / usr / local / lib / node_modules / npm / node_modules / fstream / lib / writer.js : 284:26 npm ERR ! fstream_stack Object.oncomplete ( fs.js : 107:15 ) npm http GET https://registry.npmjs.org/mocha/-/mocha-1.8.0.tgz npm ERR ! Error rolling back Error: ENOTEMPTY , rmdir '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/tiny-lr' npm ERR ! Error rolling back decompress-zip@0.0.6 { [Error : ENOTEMPTY , rmdir '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/tiny-lr'] npm ERR ! Error rolling back errno : 53, npm ERR ! rolling back the error code: ' ENOTEMPTY ' npm ERR ! Error rolling back path: '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/tiny-lr' } npm ERR ! Error: ENOENT , lstat '/usr/local/lib/node_modules/bower/node_modules/decompress-zip/node_modules/grunt-contrib-watch/node_modules/gaze/test/add_test.js' npm ERR ! If you need help , you report this May * Entire * log , npm ERR ! including the npm and node versions , at: npm ERR ! <http://github.com/npm/npm/issues> 

这是否与Xcode Version 5.1.1 (5B1008)和命令行工具的版本有关?

发生什么事情是,当我运行npm install -g bower或者sudo nom install -g命令或者bower变成了一个有错误但未完成的循环时,执行回滚并重新启动(我猜)。

读这个 ,似乎是在正确的轨道上。 所以你试图以普通用户身份运行它,对吗?

 npm install -g bower 

然后像这样通过sudo运行它,对吗?

 sudo npm install -g bower 

怎么做sudo su -像这样:

 sudo su - 

然后运行:

 npm install -g bower 

另一个build议是确保~/.npm本地用户目录下的caching)像下面这样recursion地设置给你的用户:

 sudo chown -R $USER ~/.npm 

请注意,链接的指令使用了与$USER相同的whoami命令,这是与您在系统上的$USER相同的bash环境variables。

最重要的是,上面链接的页面链接到另一个网站 ,也build议确保/usr/local被recursion设置为你的用户,就像这样:

 sudo chown -R $USER /usr/local 

但是我只会build议/usr/local调整,如果没有其他的作品。 这似乎有点激进。