2

git URL を使用してローカルにインストールできます

GitHub から直接 npm パッケージをインストールするには?

ただし、「-g」フラグを追加すると失敗します。

ここにログ全体があります

guym@guym-ubuntu:~/dev_env/projects_GIT/cosmo/gs-tmp$ sudo npm -g install git://github.com/visionmedia/express.git
npm http GET https://registry.npmjs.org/connect/2.8.3
npm http GET https://registry.npmjs.org/commander/1.2.0
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/send/0.1.2
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/connect/2.8.3
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/commander/1.2.0
npm http 304 https://registry.npmjs.org/mkdirp/0.3.5
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm WARN package.json fresh@0.1.0 No repository field.
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/send/0.1.2
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/uid2/0.0.2
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json bytes@0.2.0 No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/uid2/0.0.2
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json uid2@0.0.2 No repository field.
npm WARN package.json uid2@0.0.2 No readme data.
npm WARN package.json pause@0.0.1 No repository field.
/usr/bin/express -> /usr/lib/node_modules/express/bin/express
npm WARN package.json cli-table@0.2.0 No repository field.
npm WARN package.json cheerio-select@0.0.3 No repository field.
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
npm WARN package.json eyes@0.1.8 No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer generator-angular@0.3.0 wants generator-karma@~0.3.0
npm ERR! peerinvalid Peer generator-express-angular@0.2.4 wants generator-karma@~0.2.0

npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "-g" "install" "git://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! code EPEERINVALID
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/guym/dev_env/projects_GIT/proj/somane/npm-debug.log
npm ERR! not ok code 0

編集 :

エラーEPEERINVALIDは、私が達成しようとしてきたこととは何の関係もないようです。「generaotr-express-angular」と「generator-angular」をグローバルにアンインストールしたところ、機能しました。

今の私の質問は

この無関係な問題が私に影響を与えたのはなぜですか? それを避ける方法は?

4

1 に答える 1

3

失敗しても、見た目から Express はまだインストールされていました。

NPM が失敗する理由は、ローカルにインストールされたモジュールのサニティ チェックを実行し、そのチェックが無効なピア依存関係 (ここで説明されています) のために失敗するためです。その問題は Express に直接関係していない可能性がありますが、NPM はそれを認識していないため、問題が問題を引き起こす可能性があり、問題を解決する必要があると想定すると思います。また、Express だけでなく、インストールしたパッケージでも同じエラーが発生したと思います。

すでにわかっているように、問題のあるパッケージを削除すると解決します (別の解決策は、新しいバージョンで問題が修正されている場合は、パッケージを更新することでした)。そもそもどのようにインストールされたのか、私にはわかりません。おそらく、ピア依存関係の解決がまだ行われていない NPM バージョンがインストールされている可能性があります。

于 2013-07-07T07:19:30.457 に答える