node.js - npm 没有在某个 Windows 机器上安装任何东西

标签 node.js windows-7 npm

我在一台 Windows 机器上遇到了一个关于 NodeJS 的 npm 的奇怪问题。我无法安装任何模块,总是出现错误。

我们以 typescript 模块为例。在一台 Windows 7 机器上(运行 npm 1.4.3),当我安装 typescript 时,它看起来像这样:

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,当我尝试安装 typescript 时,它看起来像这样:

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机器肯定有问题,但我不知道如何调试和查找原因。我没有主意了。

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

最佳答案

使用以下过程:

比较两台机器上的 npm 配置:

npm config ls -l

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

echo $env:path

减少全局包安装配置:

The Node installer installs, directly into the npm folder, a special piece of Windows-specific configuration that tells npm where to install global packages. When npm is used to install itself, it is supposed to copy this special builtin configuration into the new install. There was a bug in some versions of npm that kept this from working, so you may need to go in and fix that up by hand. If %APPDATA%\npm\node_modules\npm\npmrc does not exist, you'll need to create it yourself. (%APPDATA% defaults to :\Users\\AppData\Roaming). All you need to put in that file is:

prefix=${APPDATA}/npm

Incidentally, if you would prefer that packages not be installed to your roaming profile (because you have a quota on your shared network, or it makes logging in or out from a domain sluggish), you can put it in your local app data instead:

prefix=${LOCALAPPDATA}/npm

...as well as copying %APPDATA%\npm to %LOCALAPPDATA%\npm (and updating your %PATH%, of course).

Everyone who works on npm knows that this process is complicated and fraught, and we're working on making it simpler. Stay tuned.

引用文献

关于node.js - npm 没有在某个 Windows 机器上安装任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933452/

相关文章:

javascript - 使用 SSL 运行 vuejs 开发服务器(通过 HTTPS 提供服务)

node.js - 如何将 Amazon polly TTS 和语音标记添加到 MAYA 中构建的 3D 模型中?

c++ - 从非提升的进程连接到提升的 COM 服务器

windows-7 - Mercurial ; hg log 命令显示克隆存储库中 rev 0 的巨大、无组织的文件列表

node.js - 新安装的 Cloud9 ide 上缺少文件或插件?

node.js - 安装 create-react-app my-first-react-app 后 npm start 脚本立即返回错误

mysql - 如何使用 Node.js 和 mysql2 连接到数据库来调试 Azure Function

javascript - Express 和 Mongoose - 无法更新对象

.net - 如何从 .NET 应用程序启动 `powercfg.exe -energy`?

npm - 有没有办法在不安装包的情况下按字母顺序排列 package.json ?