yosemiteでMacにgruntをインストールしようとしました。ノードはすでに最新バージョンにインストールされています。端末で「node -v」と入力すると、行v0.12.5が表示されます。それは良い。しかし、npmで何かをインストールしたい場合、エラーのみが表示されます...
「Sudo npm install -g grunt-cli」、「Sudo npm install npm -g」、「npm -v」を使用すると、常にこのエラーが発生しました...
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/Cellar/node/0.10.22/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
誰かが問題を知っているか、より良い解決策ですか?
依存関係の一部を削除することにより、npm
が壊れています。
are-we-there-yet
はnpmlog
の依存関係であり、これはnpm
自体の依存関係であり、何らかの方法で削除しました。そのような場合の通常の簡単な解決策はパッケージを再インストールすることですが、npm
が動作しない場合は機能しません。幸いなことに、npm
tarballには依存関係があらかじめバンドルされているため、 npm
をゼロからインストールする はtarballを展開するのと同じくらい簡単です。
1)グローバルnode_modules
ディレクトリに移動します(実行できる場合はnpm root -g
が出力します):
$ cd /usr/local/lib/node_modules
2)壊れたnpm
ディレクトリを削除するか、別の場所に移動します(この手順および次の手順のアクセス許可を上げる必要がある場合があることに注意してください)。
$ mv npm /tmp
3)レジストリから新しいnpm
をダウンロードして解凍します(インストールする代替バージョン、たとえば3.10.8
):
$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"
このインストールスクリプトを使用して、その一部を自動化できます。
$ curl -L https://www.npmjs.com/install.sh | sh
この時点でnpm
は再び機能するはずです。
グローバルnode_modulesディレクトリに移動します(不明な場合はnpm root -g)
$ cd /usr/local/lib/node_modules
curl -L https://www.npmjs.com/install.sh | sh
私は、centos 7マシンでノードとnpmの最新バージョンを取得しようと熱心に試みてきました。
残念ながら、私はこのエラーに今一週間近く悩まされています。そして、私はついに機能する解決策を見つけました。
Npmが現在壊れている場合、作業バージョンを再度インストールするのが最も簡単です。
コードからインストールしました。 gitがインストールされていると仮定すると、次のコマンドはその目標を達成します
cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
./configure
make
make install
Npmとノードの新しいコピーをインストールした後、これは安定版ではありません(代わりに、ソースから直接Edgeを出血させます)。
これを書いている時点でインストールされたノードのバージョンは5.0.0-preであり、私にとってはあまりにも新しいものであり、npmはバージョン2.14.4であり、私にとっては古いものです。
ノードの最新バージョンを取得するには、npmを使用して「n」パッケージをインストールします。 nを使用して、ノードの最新バージョンをインストールします。
npm install -g n
n stable
Rootユーザー(グローバルパッケージのインストールに使用)の場合、次の行を~/.bashrc
ファイルに追加する必要がありました。これにより、rootユーザーは/ usr/local/binのコマンドにアクセスできます。コマンド。 (このステップは必要ないかもしれません)
export PATH=/usr/local/bin:$PATH
この時点で、ノードのバージョンは4.0.0であり、これはノードの最新の安定バージョンです。
今度はnpmを更新します。これはこれまでで最も面倒なことでした。
常に最新バージョンに直接更新すると、「まだあります」という結果になり、「いいえ、尋ねるのをやめるか、このノードを変更します」としか推測できませんでした
代わりに、バージョン3.3.3で最初にインストールすると、この問題が解決することがわかりました。
npm install -g [email protected]
バージョン3.3.3がインストールされ、「are-we-there-yet」エラーなしで動作するようになりました。
よかった。私たちはほとんどそこにいるので、腕を内側に保ち、シートベルトで子供を固定します。
npm install -g npm
そして、その最後のコマンドで、最新バージョンのnpmと最新の安定バージョンのノードを使用することができました。これを書いている時点では3.3.5です
ここから先、私のコマンドは次のとおりです。
n stable
npm install -g npm
ここからこれらを実行するたびに、子供たちが後ろに文句を言うことなく、邪魔されずにnpm旅行をすることができます。
デフォルトではノードに付属していないサーバーを多数管理しているため、このタスクを何度も実行する必要があります。
したがって、これらの指示をスクリプトに変換することを自分自身で考えました。
楽しい:
importnode.sh
#!/bin/bash
cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
git reset --hard
git pull Origin master
./configure
make
make install
if [[ `cat ~/.bashrc |grep -E "PATH.*/usr/local/bin:.*"` ]];
then
echo "Already Done";
else
echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bashrc;
export PATH=/usr/local/bin:$PATH;
fi;
npm install -g n
n stable
npm install -g [email protected]
npm install -g npm
これをnodeimport.shに入れた後に行うべきことは、実行可能にして実行することだけです。
$ chmod +x importnode.sh
$ ./importnode.sh
しばらく待つと、すべてがインストールされます。
Eush77が言ったことですが、Windowsを使用している場合:
https://nodejs.org/download/release/npm/ から最新のパッケージをダウンロードします
解凍し、nodejs node-modulesディレクトリの「npm」ディレクトリを置き換えます(デフォルトではC:\ Program Files\nodejs\node_modules)
私も同じ問題を抱えていましたが、以下の手順を解決する最も簡単な方法が私にとってはうまくいきました。
1)Nodejsをアンインストールします。
2)C:/User/AppData/Roaming.
に移動します
3)npm
ディレクトリを削除します。
4)Nodejs
(最新v6.11.、includes npm 3.10.1)を再インストールします。
5)完了次に、(npm -v
)が正常に機能することを確認してください。
上記の手順(eush77の説明)に従って、node_modulesフォルダーのnpmフォルダーを削除しました。ただし、このエラーメッセージが表示されるリンクの破損が残っています。
/ usr/local/bin/npm:そのようなファイルまたはディレクトリはありません
壊れたリンクを削除します:
rm /usr/local/bin/npm
そして、次のような適切な場所を指すようにします:
Sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
https://nodejs.org/en/download/current/
からnode
を再インストールすることもできます
私にとってこれは、インストールが破損していて、おそらくubuntuリポジトリが互換性がないか最新のものであることに関係していました。次の結果、npm/nodeが正常にインストールされました。
Sudo curl -sL https://deb.nodesource.com/setup_4.x | Sudo -E bash-Sudo apt-get install -y nodejs
見つかった公式インストーラーパッケージを使用してリセットしました: https://nodejs.org/en/
Nとnvmをいじってみると、現在のNodeバージョンと互換性のないパッケージを提供することで、最終的にnode_modulesパッケージが破損しました。
Nodeとnpm installの両方を結合するため、他の環境でも機能すると思います。
私にとっては、プロジェクトのnode_modules
フォルダーを削除する必要がありました。その後、念のためキャッシュをクリーンアップし、新しいnpm i
を実行しましたが、are-we-there-yet
が見つからないというエラーではなく、ノードサスのポストインストールを実行できました。
上記のソリューションでグローバルnode_modules
を移動してもうまくいかない場合は試してください:
node_modules
を削除しますrm -rf node_moduldes
npm cache clean -f
npm i
yarn dev
コマンドを呼び出していたときに、ローカルサーバーにプロジェクトを展開しているときに同じ問題が発生しました。
すべてのブログ、記事、および資料を調べた後、この2つのコマンドを実行するだけで機能するようになりました。
npm list
が現在指しているバージョンを確認してください。私にとって、このエラーが発生したとき。システムを指していました。
nvm use v{VERSION}
を使用しました。 nvm use v10.5.0
(私にとって)そしてそれは機能しました。すべてのエラーがなくなり、yarn dev
の呼び出し中にプロジェクトが正常にデプロイされました。他のことをする前にこれを試してください。強くお勧めします。