Cli: パッケージのエラー無効なビンエントリ

作成日 2019年12月18日  ·  16コメント  ·  ソース: npm/cli

何/なぜ

実行する必要があります:このHerokuビルドパックのこの行からnpm prunehttps

次のエラーが発生します。

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2019-12-18T17_08_55_527Z-debug.log

次のデバッグログが生成されました: 2019-12-18T17_08_55_527Z-debug.log

いつ

このエラーは、 node_modulesが存在しないときにnpm prune実行している場合にのみ発生し、 jsescモジュール以外でも発生する可能性があります。

ただし、 node_modulesをインストールすると、 npm pruneは正常に機能します。

どこ

このエラーは、Heroku ciのクリーンビルドから発生し、私にとってはローカルのosxマシンで発生します。

どうやって

このリポジトリのクローンを作成してから: https

cd assets
npm prune

エラーが発生します


今後、このタイプのエラーをデバッグするにはどうすればよいですか? また、Herokuビルドパックでnpm pruneコマンドを正常に実行するにはどうすればよいですか?

Release 6.x patch

最も参考になるコメント

6.13.5は、来週の火曜日2019-01-07にリリースされ、この問題と他の1つの問題を修正するためにpacoteとbin-linksが更新されます。

全てのコメント16件

パッケージの設定に、非常によく似た原因不明の新しいエラーがあります。 何が起こっているのかを明確にするためにここで答えを期待しています。

これは、私が妥当な結果を見つけることができた数少ない場所の1つでした。

npm「無効なビンエントリ」

これは最近の変更によるものかもしれないと私は思います。

私は同じ問題を経験します

NPM:v6.13.4で同じエラーメッセージが表示されます。

私の再現手順はOPとは異なりますが、同じような原因だと思います。

を使用しております:
npm ci && npm prune --production

これは〜をひき起こす
error invalid bin entry for package

使用:
npm install && npm prune --production

ただし、正常に動作します。 npm installは、適切と思われるときはいつでもpackage-lock / package.jsonにアクセスし、これをすべて機能させるために何かを追加している可能性があるためだと思います。

私はこれをさかのぼります
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

これはv6.13.3npmリリースで追加されました。

私は今何が起こっているのか特に理解していません。 症状ではなく、実際の原因が何であるかを理解するために、後で読んだほうがよいかもしれません。

6.13.3と6.13.4はビンのセキュリティ上の欠陥を解決するため、_v6.13.2_に戻すべきではありません。
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

今のところ最善の行動は、これが分類されるまで、おそらく休暇期間の後、プルーンを使用しないことだと思います。 :)
@samhstn @grossmannmartin @ nickv2002

@isaacs (git-blameが私にそう言うので:joy

同じ問題を抱えています。 さまざまなパッケージでそれを見る:

+ npm prune
npm ERR! invalid bin entry for package [email protected]. key=portastic, value=bin/portastic

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-12-23T21_19_21_377Z-debug.log

ええ、ビンをリンクするときに、プルーンが完全に解決されたフォルダーを通過しないように見えます(これは、なぜビンをリンクするのか、それはやや不必要に思えますが、大丈夫です)

次のCLIリリースで修正される予定です。 それまでの間、 npm ci --productionを使用して、「本番部門はインストールされていますが、開発部門はインストールされていません」という状態にすることができますか? もちろん、GitリポジトリにDepをバンドルすることに依存している場合、それは良くありません。 ciは、既存のnode_modules見つけた場合、それを破棄しますが、考えようとしているだけです。あなたが使用できるかもしれない回避策の。

この修正がいつ公開されるかについてのニュースはありますか?

6.13.5は、来週の火曜日2019-01-07にリリースされ、この問題と他の1つの問題を修正するためにpacoteとbin-linksが更新されます。

ここでも同じことが起こります。 今日は何時に更新されるか、おおよそ知っていますか?

この問題はここ数日私を悩ませてきました、修正がいつ出るかについて何か考えはありますか? TeamCityを介したすべての自動展開が壊れたため、製品の展開とQAができなくなりました。

遅れて申し訳ありません。 GH Actions WindowsCIで奇妙な障害をデバッグしています。 せいぜい、数日以内にこれが出ると予想しています。

@jwwtaker修正が出るまで、コマンドを逆の順序で使用できます。

  • npmインストール
  • npmプルーン

npm pruneは、npm v6.13.6を使用してもまだ機能しません。

元の説明から:

このリポジトリのクローンを作成してから: https

cd assets
npm prune

次のエラーが発生します。

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2020-01-13T13_17_57_425Z-debug.log

そして、次のデバッグログ: 2020-01-13T13_17_57_425Z-debug.log

同じ問題がありますが、コマンドはHerokuビルドパックによって実行されるため、これらの回避策を使用できません。 npm 6.13.2でスタックしている(問題はnpm 6.13.3以降に発生します)か、 package-lock.json削除する必要があります(問題はこのファイルでのみ発生します)。 npm 6.13.5はそれを修正せず、npm6.13.6も修正しません。

この@isaacsの更新は

私のAzureDevOps CIは私に同じエラーを出していたので、誰かがこれを一時的に修正するために助けが必要な場合に備えて:

  • npm pruneまたはnpmインストールの前に、「Node.jsツールインストーラー」と呼ばれる新しいタスクをパイプラインに追加します
  • 「バージョン仕様」フィールドのように13.3.0を設定し、再実行します。

それは私のために働いた。

上記の一部の人々とは異なり、npm 6.13.4から6.13.6に更新すると、私の場合の問題が修正されたため、少なくとも_some_の問題が修正されたことがわかります。 他のみんなにも直せるといいですね。

20日後、少なくとも進捗状況の更新は素晴らしいでしょう。

このページは役に立ちましたか?
0 / 5 - 0 評価