16

私は Node.js を初めて使用し、npm を使用して Flatiron をインストールしようとしていますが、エラーが発生します。

sudo npm install flatiron -g

そして、私は-

npm http GET https://registry.npmjs.org/flatiron
npm http 304 https://registry.npmjs.org/flatiron
npm ERR! Error: ENOTDIR, mkdir '/home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.2.0-24-generic
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "flatiron" "-g"
npm ERR! cwd /home/siddharthsaha/denarit
npm ERR! node -v v0.8.14
npm ERR! npm -v 1.1.65
npm ERR! path /home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398
npm ERR! code ENOTDIR
npm ERR! errno 27
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/siddharthsaha/denarit/npm-debug.log
npm ERR! not ok code 0

ここで何が問題なのですか?私は見当もつかない。

4

4 に答える 4

21

問題を解決しました。tmpホームディレクトリにというファイルがあるからです。

rm -rf ~/tmp
sudo npm cache clear
sudo npm install -g node

また... npmをインストールしようとしている場合、同じエラーと解決策が適用されます-削除~/tmp

于 2013-04-17T17:10:12.167 に答える
20

試す

sudo mkdir -p /home/siddharthsaha/tmp
sudo npm cache clear

インストールスクリプトを開始する前に、npm http 304 https://registry.npmjs.org/flatiron行はこのモジュールがキャッシュから来ていると述べているためです。またENOTDIR、ディレクトリがないと述べています。したがって、キャッシュを空にすると問題が解決します。

于 2012-11-19T11:46:57.140 に答える
0

以下は、ルートなしでソースから特定のリリースをインストールする手順です。注 - これにより、node と npm の両方を提供する nodejs がインストールされます。これらはリリースごとにまとめられます。

新たに開始するには、以前の node.js と npm のインストールとこれらを削除します。

sudo mv ~/.npmrc ~/.npmrc_ignore
sudo mv ~/.npm   ~/.npm_ignore
sudo mv ~/tmp    ~/tmp_ignore
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore

nodejs と npm をルートではなく自分でインストールするには、次のコマンドを実行します (OSX/linux):

export NODE_PARENT=${HOME}/bin_0_10_32

mkdir ${NODE_PARENT}

からソースをダウンロード: http://nodejs.org/download/

cd node-v0.xxxx

./configure   --prefix=${NODE_PARENT}/nodejs

make -j8
make install   #  IMPORTANT this is NOT using sudo
               # not wanted since installing into $USER owned $NODE_PARENT

上記の --prefix で定義されたディレクトリに配置します

export PATH=${NODE_PARENT}/nodejs/bin:$PATH

環境変数 NODE_PATH を定義して、ノードがモジュールのディレクトリを見つけることができるようにします。そうしないと、 npm install xxx が新しくインストールされたモジュールを現在のディレクトリに配置します。

export NODE_PATH=${NODE_PARENT}/nodejs/lib/node_modules

構文を使用する場合: npm install -g some_cool_module グローバルの -g は、$PWD ではなく、ディレクトリ $NODE_PATH にインストールします。

nodejs install は npm も提供します:

ls -la ${NODE_PARENT}/nodejs/bin

グローバル フラグ -g を使用してインストールする後続のモジュールは、それらの ~binaries~ を上記の bin ディレクトリに自動的に配置します ... browserify のように

上記の 3 つの export xxx=yyy コマンドを ~/.bashrc などに追加して、環境をセットアップします。

于 2014-10-01T17:51:01.367 に答える