17

cygwin で NPM を使用しようとしていますが、次のエラーが発生し続けます。

ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Unexpected EOF in archive
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Unexpected EOF in archive
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Error is not recoverable: exiting now
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" 
ERR! Failed unpacking /tmp/npm-1305893882865/1305893885765-0.008730818051844835/tmp.tgz
ERR! couldn't unpack /tmp/npm-1305893882865/1305893885765-0.008730818051844835/tmp.tgz to /tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents
verbose about to build /home/Tema/node_modules/express
ERR! error installing express@2.3.5 Error: Failed tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm"

私がググったいくつかのアドバイスがあります(npm cache clean と rebaseall)が、何も役に立ちませんでした。では、Cygwin で NPM を使用する方法はありますか?

4

5 に答える 5

3
  1. tmp ディレクトリを吹き飛ばす

    rm -R /tmp/*
    
  2. npm のキャッシュをクリアする

    npm cache clean
    
  3. 現在のシェルを終了し、ash または dash シェルを起動します (cygwin/bin から)。

  4. ash (または dash) シェルで rebaseall コマンドを実行します。

    /bin/rebaseall -v
    
  5. 終了し、新しい bash シェルを再起動します。

  6. npm コマンドをもう一度試してください。

    npm install <package>
    
于 2011-07-21T22:20:36.033 に答える
2

私自身も同じ問題を頻繁に抱えています。

修正方法はわかりませんが、エラーが不規則に発生することはわかっています。npm パッケージを再度インストールしようとすると、うまくいく場合があります。再試行を続けるだけで、最終的には機能します。

100% の CPU で動かなくなったら、キャンセル (ctrl+c) してやり直してください。また、パッケージのインストール中に別のウィンドウに切り替えないでください。

node_modulesフォルダー内に wget と tar を使用してパッケージを手動でインストールすることもできます。

于 2011-06-23T13:18:12.953 に答える
1

次のコマンドで一時ファイルを削除してみてください。

$ rm /tmp/npm-*

その後、再度インストールしてください。私のために働いた。

于 2011-07-06T09:28:49.727 に答える
1

/usr/local/lib/node_modules/npm/lib/utils/tar.js の小さなパッチ

--- tar.js.old 2011-07-15 15:23:09.205440100 +0700
+++ tar.js 2011-07-15 15:25:58.327113300 +0700
@@ -20,6 +20,7 @@
, relativize = require("./relativize")
, cache = require("../cache")
, excludes = require("./excludes")
+ , child_process = require("child_process");

exports.pack = pack
exports.unpack = unpack
@@ -168,13 +169,17 @@
//console.error(npm.config.get("gzipbin")+" --decompress --stdout "
// +tarball+" | "+npm.config.get("tar")+" -mvxpf - -o -C "
// +tmp)
- pipe( spawn( npm.config.get("gzipbin")
- , ["--decompress", "--stdout", tarball]
- , process.env, false )
- , spawn( npm.config.get("tar")
- , ["-mvxpf", "-", "-o", "-C", tmp]
- , process.env, false )
- , function (er) {
+ // pipe( spawn( npm.config.get("gzipbin")
+ // , ["--decompress", "--stdout", tarball]
+ // , process.env, false )
+ // , spawn( npm.config.get("tar")
+ // , ["-mvxpf", "-", "-o", "-C", tmp]
+ // , process.env, false )
+ // , function (er) {
+
+ child_process.exec(npm.config.get("gzipbin")+" --decompress --stdout "
+ +tarball+" | "+npm.config.get("tar")+" -mvxpf - --no-same-owner -C " +tmp
+ , function (er, stdout, stderr) {
// if we're not doing ownership management,
// then we're done now.
if (er) return log.er(cb,
于 2011-07-15T08:53:52.613 に答える
0

この問題が発生した場合は、部分的に抽出されたモジュールを .npm ディレクトリ (ホーム ディレクトリ: ~/.npm にある可能性があります) から削除してから、再試行してください (2 回以上)。

于 2011-09-05T20:10:15.223 に答える