web-dev-qa-db-ja.com

なぜNodeモジュールが.stagingフォルダーに入るのですか?

ノードモジュールをインストールしようとしているElectronアプリがあります。 npm installを実行すると、node_modulesフォルダーが作成されますが、すべてのモジュールは.stagingというサブフォルダーに入ります。また、各モジュールには-xxxxxが追加されます。xはランダムな英数字です。

私が作成した他のElectronアプリはこれを行ったことがない。すべてのノードモジュールはnode_modulesのルートにあり、-xxxxxが追加されていません。

なぜこれが起こっているのでしょうか?

26
4thSpace

これは、モジュールがダウンロードおよびインストールされるまで一時的にのみ発生します。 Nodeはこれを行うようであるため、インストールするすべてのモジュールから共通のサブモジュールをまとめて、ノードモジュールフォルダー(主にWindowsユーザー用)をより適切に構成できます。

Npmのインストールが完了した後にこれが発生した場合、ノードのインストールに問題があるか、インストールに失敗した可能性があります。

26
thomasmeadows

私も同じ問題に直面していたので、以下の手順を試しました。

  1. Package-lock.jsonを削除します
  2. Node Modulesフォルダーを削除します
  3. 以下のコマンドを使用してインストールしてみてください(オープンネットワークにある必要があります)

    npm install
    

注:-「.staging」は、これらの依存関係がダウンロードされるため、一時的に「.staging」フォルダーの下にすべての依存関係を保持することを意味します。すべてが適切にダウンロードされると、node_modulesの下にのみ表示されます。

これがうまくいくことを願っています。

15
atul parate

私は同様の問題に直面し、上記の答えを試してみましたが、うまくいきませんでした。私はこの問題を解決するために以下の手順に従いました-

1 .npm audit

Npm auditを実行して、インストールする保留中のパッケージのリストを取得しました。

2 .npm i packagename

リストから1つまたは2つのパッケージを1つずつインストールした後、使用しました

3 .npm install

この時点で、インストールは遅延やハングアップなしでスムーズに進みました。同様の問題に直面しているこのヘルプを願っています:)。

0
Vino
  1. Package.lock.jsonを削除します

  2. Node_modulesを削除します

  3. npm updateを実行します

0
franky stein

システムに2つのバージョンのノードがインストールされていました。 nodejs v4.2およびnode v8.6

これは競合する可能性があると考えたため、次のコマンドでnodejs v4.2を削除しました。

Sudo apt-get remove nodejs

パスをリンクしました

Sudo ln -s /usr/bin/node /usr/bin/nodejs

もう一度npm installを実行しましたが、修正されました

0
Rajan Verma