エラー:Ionicの使用中にモジュール '../lib/utils/unsupported.js'が見つかりません


262

「Ionic start project name」を実行すると、常にこのエラーメッセージが表示されます。

エラーメッセージ

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):

    module.js:471
        throw err;
        ^

    Error: Cannot find module '../lib/utils/unsupported.js'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
        at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)

相対パスが間違っています
。– Subburaj

./bash_profileのパスを確認してください
Mohan Gopi

MacOSの場合-nodejs.orgから再インストールすると 、stackoverflow.com
Wolfgang Fahl

回答:


774

/usr/local/lib/node_modules/npmノードを削除して再インストールしてみてください。これは動作するはずです。

Homebrewを使用する MacOSの場合:

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node

1
誰もがファインダーを経由してそこに取得したい場合:knowledge.autodesk.com/support/smoke/troubleshooting/caas/...
A.com

13
あなたが醸造を使用している場合は、使用することができますbrew unistall --force nodebrew install node
ニコ

15
@Nico最初のコマンドにはタイプミスがあります。修正はになりますbrew uninstall --force node
Jayant Bhawal

11
なぜそれが起こっているのですか?
Gaurav Paliwal

4
上記のコマンドを実行した後、>> -bash:/ usr / local / bin / npm:No such file or directory
Tarun

81

私は以前の回答に従い、ノードを再インストールしました。しかし、私はこのエラーを受け取りました。

警告:インストール後の手順が正常に完了しませんでした。 brew postinstall node

だから私はこのコマンドを実行しました

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

次に走った

brew postinstall node

あるいは、sudo chown -R $(whoami)$(brew --prefix)/ *
Pathfinder

27

同様のエラーが発生しましたが、正常に機能しています。

まず、最新バージョンであることを確認してください

brew update

以前のノードのインスタンスを削除します。

brew uninstall node

次に、最新バージョンを再インストールします。

brew install node

そして、それが/ usr / localにシンボリックリンクされていないことを確認します。このステップを完了すると、エラーが発生して通知されます。

brew link --overwrite node 

ノードをインストール/アップグレードする方法の詳細も利用できます


12
brew uninstall --ignore-dependencies nodeたとえば、yarnシステム内にある場合に使用できます。
Sound Blaster

18

Mac OS X(10.12.6)では、次のようにしてこの問題を解決しました。

brew uninstall --force node
brew install node

次に、ノードのポストインストールが失敗したというエラーが表示され、再実行しました brew postinstall node

次にエラーが発生しました:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

私はそのエラーを次のように解決しました:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

そして、このエラーはもう発生しません。


1
これを数回繰り返す必要があり、作成する必要があるか、所有権を変更する必要がある(私のユーザーに対して)必要がある別のフォルダで行いました。brew postinstall node次の問題を見つけるために走るたびに、それを修正し、繰り返します。
T.

9

「n」ライブラリ@ https://github.com/tj/nを使用している場合。以下をせよ

  echo $NODE_PATH

ノードパスが空の場合

sudo n latest    - sudo is optional depending on your system

nを使用してNode.jsバージョンを切り替えると、npmが正しく機能しない場合があります。

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

ノードパスが表示されます。そうでなければ、それは何か他のものかもしれません


8

前述のとおり。

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node

6

上記/古い醸造所のインストールの回答をすべて試しましたが、私のラップトップでは何も機能しません。

以下の方法でのみ問題を解決できます。

1)次のコマンドを実行します。

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      

2)次に、Node.js公式ウェブサイトhttps://nodejs.org/en/download/current/に進み、新しいインストール用の最新パッケージをダウンロードします。

3)npmコマンドを再度実行します。これにより、エラーが発生しなくなります。

このメソッドはmacOS Mojaveバージョン10.14.4動作します。



2

はい、ノードを再インストールする必要があります:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node

2

単に3つのステップに従ってください。

  1. npmキャッシュを強制的にクリアします。

    npm cache clean -f

  2. 以下をn使用してパッケージをグローバルにインストールしますnpm

    npm install -g n

  3. 3つのオプションのいずれかからインストールします。

    a。 sudo n stable (get the stable version)

    b。 sudo n latest (get the latest version of node)

    c。 sudo n x.x.x (get the specific version of node)


2

エラーのCannot find module '../lib/utils/unsupported.js'原因require('../lib/utils/unsupported.js')./lib/node_modules/npm/bin/npm-cli.jsです。

nodejs requiredocsによると必要なモジュールはで始まるので、ファイルに対して相対的に検索されます../

したがって、../lib/utils/unsupported.jsから始まる相対パスを使用する場合./lib/node_modules/npm/bin/npm-cli.js、必要なモジュールはに存在する必要があります./lib/node_modules/npm/lib/utils/unsupported.js。そこにない場合、2つのオプションが表示されます。

  • インストールが破損している場合、ノードを再インストールするVincent Ducastelの回答が機能する可能性があります
  • npmへのシンボリックリンクではありません./lib/node_modules/npm/bin/npm-cli.js。これが私のセットアップでエラーを引き起こした原因です。を呼び出すとnpm、通常はPATHenv varにリストされているディレクトリで検索していることがわかります。たとえば、にあり./binます。ただし、ディレクトリnpm./binは前述のへのシンボリックリンクのみにする必要があり./lib/node_modules/npm/bin/npm-cli.jsます。シンボリックリンクではないがコードが直接含まれている場合、インストールプロセスのどこかで、シンボリックリンクがリンク先のファイルに置き換えられます。この場合、シンボリックリンクを再作成するだけで十分です。cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

NODE_PATHまたはnpmrc設定を確認することを提案するすべての回答は無視してください。これらはモジュールを相対的に検索するときに考慮されないためです。


1

インストール/更新方法を混合することでこのエラーが発生しました:Webサイトからパッケージをダウンロードしてノードをインストールし、後でbrewを使用して更新しました。

私はbrewバージョンをアンインストールすることで修正しました:

brew uninstall --ignore-dependenciesノード

それから私は、ノードのウェブサイトに戻って、パッケージマネージャを経由してダウンロードしてインストール:https://nodejs.org/en/download/ 何らかの理由で、醸造を経て再インストールしようとしているのない量が働いていません。


0

私の場合、$ NODE_PATHがありませんでした:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules" 
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

echo $NODE_PATH空のみをチェックすることは、設定されていないことを意味します。それらを.bashrcに追加することをお勧めします。


0

fedora 27では、私はこれを行うことで問題を解決しました:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs

0

これは、コンピューターのOSからノードを削除する方法についての役立つビデオとブログの投稿です。これは、最初にノードをインストールした方法に基づいた別の削除方法です(https://nodejs.org/en/からダウンロードしたbrew対バイナリファイル)

  • Homebrewでノードをインストールした場合、brewアンインストールノードが機能します。node -v端末でコマンドを実行して確認します。

  • それ以外の場合で、nodeJSのWebサイトからバイナリファイルをインストールした場合は、ターミナルで次のコマンドを実行する必要がありますsudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}。もう一度、node -vコマンドを実行して確認します。

  • どちらの場合も、ノードの削除に成功すると、bashが完全に削除された場合、bashがどのノードであるかを認識できなくなります。


2
ソリューションへのリンクは回答をサポートするために歓迎されいますが、投稿する回答は完全に自己完結型である必要があります。つまり、予期しないコンテンツや悪意のあるコンテンツを含むか、まったく存在しない可能性がある別のサイトに訪問者がクリックする必要はありません。
Tripleee、2018年


0

これはnpm/lib、何らかの理由でフォルダーが空になったときに発生する可能性があります(最後の使用での権限の問題が原因で発生する可能性もあります)。

(ここでは他の回答で述べたように)ノードの再インストールは、問題を解決することができますが、私はと呼ばれる素晴らしいツール使用を示唆しているnvmの複数のバージョンを管理することができます(ノードバージョンマネージャ)、nodeそしてnpm-これはのdevのマシン上で特に便利です複数のプロジェクトでは、異なるバージョンのノードが必要です。

nvmインストールすると、このメッセージは表示されなくなり、最新バージョンのnodenpmを使用できます。

nvmに現在インストールされているノードバージョンのリストを表示するには、次のコマンドを実行します。

nvm list

新しいノードバージョンをインストールして使用するには、次のコマンドを実行します。

nvm install <node_version>

たとえば、ノード10.xの最新バージョンをインストールするには、次のコマンドを実行します。

nvm install 10

現在インストールされているバージョンに切り替えるには、次を実行:

nvm use <node_version>

システムの元のノードバージョンに切り替えるには、次のコマンドを実行します。

nvm use system

お役に立てれば。

幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.