npm没有在某台Windows机器上安装任何东西

时间:2014-04-08 09:51:59

标签: node.js windows-7 npm

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

我们以typescript模块为例。在一台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
typescript@1.0.0 C:\Users\myuser\AppData\Roaming\npm\node_modules\typescript

所以,它看起来很好,一切都按预期工作。

现在,在我的其他Windows机器上,也运行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机器肯定有问题,但我不知道如何调试并找到原因。我没有想法。

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

1 个答案:

答案 0 :(得分: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)。你只需要输入该文件:

     

前缀= $ {APPDATA} / NPM

     

顺便提一下,如果您希望不将软件包安装到您的漫游配置文件中(因为您的共享网络上有配额,或者它使得从域缓存中登录或退出),您可以将其放在本地应用程序中而不是数据:

     

前缀= $ {LOCALAPPDATA} / NPM

     

...以及将%APPDATA%\ npm复制到%LOCALAPPDATA%\ npm(当然还要更新%PATH%)。

     

每个在npm工作的人都知道这个过程很复杂,而且我们正在努力让它变得更简单。请继续关注。

<强>参考