2014-04-08 67 views
1

我在我的一台windows机器上有一个nodejs'npm的奇怪问题。我无法安装任何模块,我总是遇到错误。npm没有在某台windows机器上安装任何东西

让我们以打字稿模块为例。在一台Windows 7机器(运行NPM 1.4.3),当我安装打字稿,它看起来像这样:

C:\Users\myuser>npm install -g typescript 
npm http GET https://registry.npmjs.org/typescript 
npm http 200 https://registry.npmjs.org/typescript 
npm http GET https://registry.npmjs.org/typescript/-/typescript-1.0.0.tgz 
npm http 200 https://registry.npmjs.org/typescript/-/typescript-1.0.0.tgz 
C:\Users\myuser\AppData\Roaming\npm\tsc -> C:\Users\myuser\AppData\Roaming\npm 
ode_modules\typescript\bin\tsc 
[email protected] C:\Users\myuser\AppData\Roaming\npm\node_modules\typescript 

因此,它看起来好了,一切正常。

现在,我的其他窗口的机器,也运行Windows 7,同时还运行NPM 1.4.3,它看起来像这样,当我尝试安装打字稿:

C:\Users\sbusse>npm install -g typescript 
npm http GET https://registry.npmjs.org/typescript 
npm http 304 https://registry.npmjs.org/typescript 
npm http GET https://registry.npmjs.org/jake 
npm http 304 https://registry.npmjs.org/jake 
npm http GET https://registry.npmjs.org/minimatch 
npm http GET https://registry.npmjs.org/utilities 
npm http GET https://registry.npmjs.org/q 
npm http 304 https://registry.npmjs.org/q 
npm http 304 https://registry.npmjs.org/minimatch 
npm http 304 https://registry.npmjs.org/utilities 
npm http GET https://registry.npmjs.org/lru-cache 
npm http GET https://registry.npmjs.org/sigmund 
npm http GET https://registry.npmjs.org/jshint 
npm http GET https://registry.npmjs.org/cover 
npm http GET https://registry.npmjs.org/promises-aplus-tests 
npm http GET https://registry.npmjs.org/opener 
npm http GET https://registry.npmjs.org/grunt 
npm http GET https://registry.npmjs.org/jasmine-node/1.11.0 
npm http GET https://registry.npmjs.org/grunt-cli 
npm http GET https://registry.npmjs.org/grunt-contrib-uglify 
npm http GET https://registry.npmjs.org/tap 
npm http GET https://registry.npmjs.org/matcha 
npm http 304 https://registry.npmjs.org/sigmund 
npm http 304 https://registry.npmjs.org/jshint 
npm http 304 https://registry.npmjs.org/lru-cache 
npm http 304 https://registry.npmjs.org/promises-aplus-tests 
npm http 304 https://registry.npmjs.org/opener 
npm http 304 https://registry.npmjs.org/jasmine-node/1.11.0 
npm http 304 https://registry.npmjs.org/grunt 
npm http 304 https://registry.npmjs.org/cover 
npm http 304 https://registry.npmjs.org/grunt-cli 
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify 
npm http 304 https://registry.npmjs.org/tap 
npm http 304 https://registry.npmjs.org/matcha 
npm http GET https://registry.npmjs.org/weak 
npm http 304 https://registry.npmjs.org/weak 
npm http GET https://registry.npmjs.org/nopt 
npm http GET https://registry.npmjs.org/findup-sync 
npm http GET https://registry.npmjs.org/resolve 
npm http GET https://registry.npmjs.org/grunt-contrib-jshint 
npm http GET https://registry.npmjs.org/mocha 
npm http GET https://registry.npmjs.org/underscore 
npm http GET https://registry.npmjs.org/sinon 
npm http GET https://registry.npmjs.org/coffee-script 
npm http GET https://registry.npmjs.org/colors 
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3 
npm http GET https://registry.npmjs.org/findup-sync 
npm http GET https://registry.npmjs.org/eventemitter2 
npm http GET https://registry.npmjs.org/async 
npm http GET https://registry.npmjs.org/glob 
npm http GET https://registry.npmjs.org/hooker 
npm http GET https://registry.npmjs.org/iconv-lite 
npm http GET https://registry.npmjs.org/rimraf 
npm http GET https://registry.npmjs.org/lodash 
npm http GET https://registry.npmjs.org/underscore.string 
npm http GET https://registry.npmjs.org/which 
npm http GET https://registry.npmjs.org/js-yaml 
npm http GET https://registry.npmjs.org/exit 
npm http GET https://registry.npmjs.org/getobject 
npm http GET https://registry.npmjs.org/grunt-legacy-util 
npm http GET https://registry.npmjs.org/temporary 
npm http GET https://registry.npmjs.org/grunt-contrib-jshint 
npm http GET https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http GET https://registry.npmjs.org/grunt-contrib-watch 
npm http GET https://registry.npmjs.org/difflet 
npm http GET https://registry.npmjs.org/semver/2.1.0 
npm http GET https://registry.npmjs.org/shelljs 
npm http 304 https://registry.npmjs.org/nopt 
npm http GET https://registry.npmjs.org/electron 
npm http 304 https://registry.npmjs.org/underscore 
npm http GET https://registry.npmjs.org/bindings 
npm http GET https://registry.npmjs.org/mocha 
npm http GET https://registry.npmjs.org/nan 
npm http 304 https://registry.npmjs.org/mocha 
npm http 304 https://registry.npmjs.org/findup-sync 
npm http 304 https://registry.npmjs.org/resolve 
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3 
npm http 304 https://registry.npmjs.org/findup-sync 
npm http GET https://registry.npmjs.org/grunt-lib-contrib 
npm http GET https://registry.npmjs.org/shelljs 
npm http GET https://registry.npmjs.org/grunt-contrib-jshint 
npm http GET https://registry.npmjs.org/uglify-js 
npm http GET https://registry.npmjs.org/console-browserify 
npm http GET https://registry.npmjs.org/grunt-contrib-clean 
npm http GET https://registry.npmjs.org/cli 
npm http GET https://registry.npmjs.org/grunt-contrib-internal 
npm http GET https://registry.npmjs.org/coveraje 
npm http GET https://registry.npmjs.org/browserify 
npm http 304 https://registry.npmjs.org/sinon 
npm http 304 https://registry.npmjs.org/grunt-contrib-jshint 
npm http 304 https://registry.npmjs.org/colors 
npm http GET https://registry.npmjs.org/nodeunit 
npm http GET https://registry.npmjs.org/sinon 
npm http 304 https://registry.npmjs.org/coffee-script 
npm http 304 https://registry.npmjs.org/async 
npm http GET https://registry.npmjs.org/slide 
npm http GET https://registry.npmjs.org/runforcover 
npm http GET https://registry.npmjs.org/mkdirp 
npm http GET https://registry.npmjs.org/difflet 
npm http GET https://registry.npmjs.org/deep-equal 
npm http GET https://registry.npmjs.org/buffer-equal 
npm http GET https://registry.npmjs.org/glob 
npm http GET https://registry.npmjs.org/sinon/-/sinon-1.7.3.tgz 
npm http 304 https://registry.npmjs.org/glob 
npm http 304 https://registry.npmjs.org/eventemitter2 
npm http 304 https://registry.npmjs.org/iconv-lite 
npm http 304 https://registry.npmjs.org/hooker 
npm http 304 https://registry.npmjs.org/rimraf 
npm http GET https://registry.npmjs.org/jasmine-growl-reporter 
npm http GET https://registry.npmjs.org/walkdir 
npm http GET https://registry.npmjs.org/mkdirp 
npm http GET https://registry.npmjs.org/gaze 
npm http GET https://registry.npmjs.org/requirejs 
npm http GET https://registry.npmjs.org/jasmine-reporters 
npm http GET https://registry.npmjs.org/abbrev 
npm http GET https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http GET https://registry.npmjs.org/lodash 
npm http 304 https://registry.npmjs.org/exit 
npm http 304 https://registry.npmjs.org/underscore.string 
npm http 304 https://registry.npmjs.org/which 
npm http GET https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http 304 https://registry.npmjs.org/js-yaml 
npm http 200 https://registry.npmjs.org/sinon/-/sinon-1.7.3.tgz 
npm http 304 https://registry.npmjs.org/grunt-contrib-jshint 
npm http 304 https://registry.npmjs.org/getobject 
npm http GET https://registry.npmjs.org/cli-table 
npm http 304 https://registry.npmjs.org/lodash 
npm http 304 https://registry.npmjs.org/grunt-legacy-util 
npm http 304 https://registry.npmjs.org/temporary 
npm http 304 https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http 304 https://registry.npmjs.org/difflet 
npm http 304 https://registry.npmjs.org/semver/2.1.0 
npm http 304 https://registry.npmjs.org/grunt-contrib-watch 
npm http 304 https://registry.npmjs.org/electron 
npm http 304 https://registry.npmjs.org/nan 
npm http 304 https://registry.npmjs.org/bindings 
npm http 304 https://registry.npmjs.org/mocha 
npm http 304 https://registry.npmjs.org/shelljs 
npm http 304 https://registry.npmjs.org/shelljs 
npm http GET https://registry.npmjs.org/drip 
npm http GET https://registry.npmjs.org/chai-spies 
npm http GET https://registry.npmjs.org/chai 
npm http 304 https://registry.npmjs.org/uglify-js 
npm http 304 https://registry.npmjs.org/grunt-lib-contrib 
npm http 304 https://registry.npmjs.org/console-browserify 
npm http 304 https://registry.npmjs.org/grunt-contrib-jshint 
npm http 304 https://registry.npmjs.org/grunt-contrib-clean 
npm http 304 https://registry.npmjs.org/cli 
npm http 304 https://registry.npmjs.org/grunt-contrib-internal 
npm http 304 https://registry.npmjs.org/coveraje 
npm http 304 https://registry.npmjs.org/sinon 
npm http 304 https://registry.npmjs.org/nodeunit 
npm http 304 https://registry.npmjs.org/mkdirp 
npm http 304 https://registry.npmjs.org/difflet 
npm http 304 https://registry.npmjs.org/slide 
npm http 304 https://registry.npmjs.org/runforcover 
npm http 304 https://registry.npmjs.org/deep-equal 
npm http 304 https://registry.npmjs.org/browserify 
npm http 304 https://registry.npmjs.org/buffer-equal 
npm http 304 https://registry.npmjs.org/glob 
npm http 304 https://registry.npmjs.org/mkdirp 
npm http 304 https://registry.npmjs.org/jasmine-growl-reporter 
npm http 304 https://registry.npmjs.org/requirejs 
npm http 304 https://registry.npmjs.org/walkdir 
npm http 304 https://registry.npmjs.org/gaze 
npm http 304 https://registry.npmjs.org/abbrev 
npm http GET https://registry.npmjs.org/benchmark 
npm http 304 https://registry.npmjs.org/jasmine-reporters 
npm http 304 https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http 304 https://registry.npmjs.org/grunt-contrib-nodeunit 
npm http 304 https://registry.npmjs.org/cli-table 
npm http GET https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-0.4.0.tgz 
npm http 304 https://registry.npmjs.org/drip 
npm http 304 https://registry.npmjs.org/chai 
npm http 304 https://registry.npmjs.org/lodash 
npm http 304 https://registry.npmjs.org/chai-spies 
npm http GET https://registry.npmjs.org/read-package-json 
npm http GET https://registry.npmjs.org/traverse 
npm http GET https://registry.npmjs.org/charm 
npm http GET https://registry.npmjs.org/deep-is 
npm http GET https://registry.npmjs.org/ent 
npm http 200 https://registry.npmjs.org/benchmark 
npm http 200 https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-0.4.0.tgz 
npm http GET https://registry.npmjs.org/grunt/0.4.2 
npm http GET https://registry.npmjs.org/nodelint 
npm http 304 https://registry.npmjs.org/read-package-json 
npm http 304 https://registry.npmjs.org/deep-is 
npm http 304 https://registry.npmjs.org/charm 
npm http 304 https://registry.npmjs.org/ent 
npm http GET https://registry.npmjs.org/bunker 
npm http 200 https://registry.npmjs.org/grunt/0.4.2 
npm http 304 https://registry.npmjs.org/traverse 
npm http GET https://registry.npmjs.org/package 
npm http GET https://registry.npmjs.org/sinon/1.2.0 
npm http 304 https://registry.npmjs.org/nodelint 
npm http GET https://registry.npmjs.org/grunt/-/grunt-0.4.2.tgz 
npm http GET https://registry.npmjs.org/zlib-browserify/0.0.1 
npm http 304 https://registry.npmjs.org/bunker 
npm http 200 https://registry.npmjs.org/package 
npm http 200 https://registry.npmjs.org/sinon/1.2.0 
npm http 304 https://registry.npmjs.org/zlib-browserify/0.0.1 
npm http 200 https://registry.npmjs.org/grunt/-/grunt-0.4.2.tgz 
npm http GET https://registry.npmjs.org/sinon/-/sinon-1.2.0.tgz 
npm http GET https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.8.0.tgz 
npm http 200 https://registry.npmjs.org/sinon/-/sinon-1.2.0.tgz 
npm http GET https://registry.npmjs.org/jshint/-/jshint-2.4.4.tgz 
npm http GET https://registry.npmjs.org/inherits 
npm http GET https://registry.npmjs.org/graceful-fs 
npm http 200 https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.8.0.tgz 
npm http GET https://registry.npmjs.org/colors/0.3.0 
npm http 200 https://registry.npmjs.org/jshint/-/jshint-2.4.4.tgz 
npm http 304 https://registry.npmjs.org/inherits 
npm http 304 https://registry.npmjs.org/graceful-fs 
npm http 304 https://registry.npmjs.org/colors/0.3.0 
npm http GET https://registry.npmjs.org/tape 
npm http GET https://registry.npmjs.org/tape 
npm http GET https://registry.npmjs.org/folio 
npm http 304 https://registry.npmjs.org/tape 
npm http 304 https://registry.npmjs.org/tape 
npm http GET https://registry.npmjs.org/burrito 
npm http 304 https://registry.npmjs.org/folio 
npm http GET https://registry.npmjs.org/codex 
npm http GET https://registry.npmjs.org/normalize-package-data 
npm http 304 https://registry.npmjs.org/burrito 
npm http 304 https://registry.npmjs.org/codex 
npm http 304 https://registry.npmjs.org/normalize-package-data 
npm http GET https://registry.npmjs.org/jshint/-/jshint-2.0.1.tgz 
npm http GET https://registry.npmjs.org/codex/-/codex-0.2.3.tgz 
npm ERR! Error: ENOENT, lstat 'C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\di 
fflet\node_modules\charm\README.markdown' 
npm ERR! If you need help, you may report this *entire* log, 
npm ERR! including the npm and node versions, at: 
npm ERR!  <http://github.com/npm/npm/issues> 

npm ERR! System Windows_NT 6.1.7601 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "typescript" 
npm ERR! cwd C:\Users\sbusse 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 
npm ERR! path C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\difflet\node_module 
s\charm\README.markdown 
npm ERR! fstream_path C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\difflet\nod 
e_modules\charm\README.markdown 
npm ERR! fstream_type File 
npm ERR! fstream_class FileWriter 
npm ERR! code ENOENT 
npm ERR! errno 34 
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26 
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) 
npm http 200 https://registry.npmjs.org/codex/-/codex-0.2.3.tgz 
npm http GET https://registry.npmjs.org/argparse 
npm http GET https://registry.npmjs.org/esprima 
npm http 200 https://registry.npmjs.org/jshint/-/jshint-2.0.1.tgz 
npm ERR! Error: ENOENT, chmod 'C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\gl 
ob\glob.js' 
npm ERR! If you need help, you may report this *entire* log, 
npm ERR! including the npm and node versions, at: 
npm ERR!  <http://github.com/npm/npm/issues> 

npm ERR! System Windows_NT 6.1.7601 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "typescript" 
npm ERR! cwd C:\Users\sbusse 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 
npm ERR! path C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\glob\glob.js 
npm ERR! fstream_path C:\Users\sbusse\AppData\Roaming\npm\node_modules\typescript\node_modules\jake\node_modules\q\node_modules\grunt-cli\node_modules\resolve\node_modules\tap\node_modules\glob\glob.j 
s 
npm ERR! fstream_type File 
npm ERR! fstream_class FileWriter 
npm ERR! fstream_finish_call chmod 
npm ERR! code ENOENT 
npm ERR! errno 34 
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:305:19 
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) 
npm http 200 https://registry.npmjs.org/esprima 
npm http 200 https://registry.npmjs.org/argparse 
^CBatchvorgang abbrechen (J/N)? j 

我停下来的过程在这里,因为它将永远运行。说真的,我让它跑了20分钟,它不会停下来。

现在我已经尝试了很多事情。显然,删除并重新安装nodejs,清除缓存,删除整个npm和/或node_modules文件夹,安装旧版本的nodejs和npm,但没有运气。我也尝试过使用32位或64位版本的nodejs,但没有任何区别。 Windows机器也具有相同的Windows更新安装状态。我的第二台Windows机器肯定有问题,但我不知道如何调试并找到原因。我没有想法。

有谁知道,问题可能是什么?提前致谢。

+0

嘛不是一个真正的解决方案,但我想,我找到了一个解决方法。我把“dev”配置变成了true,它安装了所有的devDependencies。也许这只是太多依赖窗口?! 如果我将其转为,我可以安装我以前不能使用的打字稿和其他模块,例如咕噜声或角度。 – ghost23

回答

0

使用以下过程:

比较NPM配置在两台机器上:

npm config ls -l 

比较在两台机器上的环境路径:

echo $env:path 

减少全球软件包的安装配置:

Node安装程序直接在npm文件夹中安装一段特定于Windows的配置,该配置告诉npm安装全局程序包的位置。当npm用于自己安装时,它应该将这个特殊的内置配置复制到新的安装中。在某些版本的npm中存在一个错误,导致它无法正常工作,所以您可能需要进入并手动修复。如果%APPDATA%\ npm \ node_modules \ npm \ npmrc不存在,您需要自己创建它。 (%APPDATA%默认为:\ Users \\ AppData \ Roaming)。所有你需要把该文件是:

PREFIX = $ {APPDATA}/NPM

顺便说一句,如果你宁愿不要安装包漫游配置文件(因为你有你的共享配额网络,或者它使登录或缩小域呆滞),你可以把它放在你的本地应用程序数据,而不是:

PREFIX = $ {} LOCALAPPDATA/NPM

...以及复制% APPDATA%\ npm到%LOCALAPPDATA%\ npm(当然更新你的%PATH%)。

每个在npm上工作的人都知道这个过程非常复杂和充满困难,我们正在努力使它更简单。敬请关注。

参考

相关问题