Подтвердить что ты не робот

Ошибка установки npm ENOTDIR

Я очень новичок в Node.js и пытаюсь установить Flatiron с помощью npm, но это дает мне ошибку.

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!     <[email protected]>

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

Что здесь не так? Я понятия не имею.

4b9b3361

Ответ 1

Попробуйте

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

перед запуском установки script, так как строка npm http 304 https://registry.npmjs.org/flatiron указывает, что этот модуль исходит из кеша. А также ENOTDIR указывает, что нет директории. Поэтому очистка кеша решит вашу проблему.

Ответ 2

Просто решил проблему. Это потому, что в домашнем каталоге есть файл с именем tmp.

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

Также... если вы пытаетесь установить npm, то применяются те же ошибки и решение - delete ~/tmp

Ответ 3

Ниже приведены шаги по установке данной версии из источника без root ПРИМЕЧАНИЕ. Это устанавливает nodejs, который дает вам как node, так и npm,      они собираются вместе для выпуска.

чтобы начать новое удаление ранее установленных 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, так как вы сами не выполняете эти команды root (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, поэтому node может найти директорию для модулей в противном случае npm install xxx добавит вновь установленный модуль в текущий каталог:

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

когда вы используете синтаксис: npm install -g some_cool_module -g для global устанавливает его в каталог $NODE_PATH, а не ваш $PWD

nodejs install также дает вам npm:

ls -la ${NODE_PARENT}/nodejs/bin

Последующие модули, которые вы устанавливаете с использованием глобального флага -g, автоматически устанавливаются их ~ двоичные файлы ~ в выше bin dir... как браузеру

Теперь поставьте три экспортированных xxx = yyy команд в ваш ~/.bashrc или некоторые такие, чтобы ваша среда была настроена

Ответ 4

Я прям удаляю файл npm-debug.log. то это нормально для меня.