今日は私の最初の仕事の最初の日であり、Mac(OSX)でnodeとnpmを更新して開発環境をセットアップした後、何かが壊れているようです。コマンドライン(npm init、npm installなど)でnpmを使用しようとするたびに、次のエラーメッセージが表示されます。
module.js:339
エラーを投げます。
エラー:モジュール 'npmlog'が見つかりません
function.Module._resolveFilename(module.js:337:15)
function.Module._load(module.js:287:25)で
module.require(module.js:366:17)
at require(module.js:385:17)
/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13
オブジェクトで。 (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)
module._compile(module.js:425:26)
object.Module._extensions..js(module.js:432:10)で
module.load(module.js:356:32)
function.Module._load(module.js:311:12)で
表示されるエラーメッセージはほとんどなく、スタックトレースもそれほど役に立ちません。私が試したことは次のとおりです。
npm <something>
を使用して問題を解決することができましたが、それは私にはできません。Sudo npm uninstall npm -g
などが機能しないため、機能しませんでした。.npm
ディレクトリからnpmlog
ディレクトリを削除してから、GitHubリポジトリを再びディレクトリに直接クローンしました。うまくいけば、あなたの一人が以前にこれに遭遇したか、それへのアプローチ方法のアイデアを持っていることがあります。どんな助けも大歓迎です。
ここに私のために働いたステップがあります:
$ Sudo rm -rf /usr/local/bin/npm
$ Sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
ここに良いリンクがあります Fixing npm On Mac OS X for Homebrew Users
。
macでnode.js
をアップグレードしようとすると、次のコマンドが使用されます
rm -rf /usr/local/lib/node_modules brew uninstall node brew install node --without-npm echo prefix=~/.npm-packages >> ~/.npmrc curl -L https://www.npmjs.com/install.sh | Sudo sh
curl -0 -L http://npmjs.org/install.sh | Sudo sh
リダイレクトに従う。また、ユーザーの権限に応じて、Sudo shコマンドの前にSudoを追加したことに注意してください。
私はMacでこの問題に遭遇しましたが、よく見ると、問題はNode特定の状況でのアプリケーションディレクトリ内のnode/bin
のリンクlib/node_modules/npm/bin
のnpm
へのディレクトリはファイル自体に置き換えられ、それが失敗する理由です(そして、すべてのさまざまなスクリプトメソッドがファイルリンクを正しく保持するために修正する理由です)。
node-v6.9.4-darwin-x64
からcp
を使用してコンテンツをコピーすると、この問題が発生しますが、Finderを使用してファイルをコピーする場合はそうしません。そのため、Finderを使用したくない場合は、ln
を使用して手動でリンクを再作成することで修正できます(または、mv
またはrsync -a
も機能します。 tはそれらをテストしました)。
これがこの問題のためにここに来る人を助けることを願っています。
編集:Macで問題の理由を偶然見つけました(私の特定のシナリオでは、とにかく):私は常にcp -r
を使用してディレクトリをコピーしました。これは私が年寄りで、新しいことをもう学ばないからです。正しい方法はcp -R
で、これはすべてを正しくコピーするはずです。
最初からやり直すほど問題を「修正」する必要はありませんでした。この投稿を使用してそうしました: Node.jsを完全にアンインストールし、最初から再インストールする方法(Mac OS X)
他の誰かが実際に問題を修正する方法を知っているか、私がそれを引き起こすために何をしたかを知っていれば、私はまだ非常に興味があります。
私の状態では、ただbrew uninstall node
そして公式サイトからダウンロードして私のために働いた
Sudo npm install npm -g
を実行した後、Fedora 27でこれをヒットしました。
問題は、Sudo dnf install nodejs
と/usr/local/bin
にnpmをインストールする/usr/local/lib
を介してNode.jsを最初にインストールしたことです。ただし、Sudo npm install
を実行すると、/usr/bin/
に別のバージョンがインストールされます
which npm
を実行すると、追加のnpmがインストールされていることがわかります。その後、次のことが私のためにすべてをきれいにしました:
$ Sudo rm /usr/bin/npm
$ Sudo rm -rf /usr/lib/node_modules/npm
$ dnf remove -y nodejs
$ dnf install -y nodejs
私にとっては、brew uninstall node
そして、 nodejs.org から最新バージョンをダウンロードし、それが機能しました。
この同じエラーが発生しました。これは、インターネットに接続されていないサーバー上にありました。 Githubで、コピーやその他のファイル操作を実行しているときに、シンボリックリンクを削除できる場合があるというスレッドを見ました。そこで、問題のあるサーバーのシンボリックリンクのノードディレクトリで「検索」を行いましたが、見つかった場所はありませんでした。動作中のサーバーで同じ操作を行うと、シンボリックリンクファイルが見つかりました。
NODE_HOME/binに行ってls -lを実行しました
案の定、npm用のファイルがありました。動作中のサーバーで同じ手順を実行し、npmファイルはシンボリックリンクでした。問題のあるサーバーを修正するために、以下を実行しました。
rm npm
ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
REDHAT linuxに分度器をインストール中に同じエラーが発生しました
npm
でファイル
/node-v6.10.2-linux-x64/bin/npm
以下のようなモジュールパスの場合:
前のコード
var log = require('npmlog')
コード後
var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')