ошибки установки npm с ошибкой: ENOENT, chmod
Я пытаюсь глобально установить модуль npm, который я только что опубликовал. Каждый раз, когда я пытаюсь установить, либо из npm, либо из папки, я получаю эту ошибку.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
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.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Я использую sudo, и я трижды проверил все в пакете, все должно работать. Я немного поискал вокруг и увидел пару подобных случаев, ни один из которых не был разрешен. Вот что я попробовал.
- обновление npm (
sudo npm install -g npm
) - очистить глобальный кэш npm (
sudo npm cache clear
) - очистить кэш npm пользователя (
npm cache clear
)
Я заметил, что ошибка связана с файлом, который я связываю с путем, в частности, когда npm пытался сделать chmod. Это не должно быть проблемой, мой lib/cli.js
имеет обычные разрешения, и npm имеет разрешения суперпользователя во время этой установки.
после копания в документах npm я нашел вариант, который остановил бы npm от создания ссылок bin(--no-bin-links
), когда я попробовал установить с ним, он работать отлично.
так в чем же дело? Это какой-то странный случай бахромы ошибка это еще не решение?
Edit: для справки,здесь модуль я загрузил
24 ответов
Ok похоже, что NPM использует ваш .gitignore
в качестве основы для , и, таким образом, игнорирует /lib
. Если вы добавите пробел .npmignore
файл в корень вашего приложения, все должно работать.
[edit] - дополнительная информация об этом поведении здесь:https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
эта проблема как-то возникла для меня на Mac, когда я пытался запустить npm install -g bower
. Это давало мне ряд ошибок за то, что я не мог найти такие вещи, как graceful-fs. Я не уверен, как я установил npm изначально, но похоже, что, возможно, он спустился с узла с помощью homebrew. Я первый побежал
brew uninstall node
это удалило оба node
и npm
С моего пути. Оттуда я просто переустановил его
brew install node
когда он закончил, у меня было node
и npm
на моем пути и я смог бежать!--11-->
rm -rf ~/.npm
npm install -g bower
это затем успешно установлено bower.
обновление формул заваривания и обновление установок, похоже, не работали для меня, я не уверен, почему. Удаление .npm
папка была чем-то, что работало для других людей, и я пробовал это без успеха. На этот раз я сделал это на всякий случай. Обратите внимание также, что ни одно из следующих решений не решило проблему для меня, хотя и для других:
npm cache clean
sudo npm cache clean
Я получал эту ошибку при установке и добавлении npm .npmignore не решил его.
ошибка: ENOENT, stat 'C:\Users\My-UserName\AppData\Roaming\npm'
Я попытался перейти в указанную папку, и ее не существовало. Ошибка была исправлена, когда я создано npm на роуминг.
Это на Windows 8.1
у меня была та же проблема, и просто нашел обработку, не упомянутую здесь. Хотя я бы внес свой вклад в сообщество:
npm install -g myapp
не копируя
Я получил аналогичное сообщение об ошибке при попытке npm install
куча зависимостей. Оказывается, некоторые из них не удастся установить на Debian/Ubuntu, потому что они ожидают /usr/bin/node
быть исполняемым узлом. Чтобы исправить, вам нужно сделать
sudo ln -s nodejs /usr/bin/node
или лучше
sudo apt-get install nodejs-legacy
дополнительная информация: https://stackoverflow.com/a/21171188/7581
Я получал аналогичную ошибку на npm install
при локальной установке:
npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'
Я не уверен, что вызвало ошибку, но недавно я установил пару новых модулей узла локально, обновил узел с homebrew и запустил "npm update-g".
единственный способ решить проблему - полностью удалить локальный каталог node_modules и запустить npm install
еще раз:
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
Я думаю, что ваш скомпилированный сценарий кофе отсутствует в опубликованном пакете npm. Попробуйте написать prepublish.
в моем случае (множественный код ENOENT errno 34) проблема была с ~/.npm/
открыть каталог. Внутри него были некоторые подкаталоги, имеющего root:root
права, которые вызывали проблемы, когда я запускал команды как обычный пользователь (без sudo
). Так я поменял владельца всех подпапок и файлов внутри ~/.npm/
dir в моем локальном пользователе и группе. Это сделало трюк на моем Ubuntu (на Mac тоже должно работать).
$ sudo chown yourusername.yourgroupname ~/.npm/ -R
вы должны знать свое имя пользователя, верно? Если нет, то запустите $ whoami
и замените свое имя группы с ним тоже, как это:
$ sudo chown johnb.johnb ~/.npm/ -R
EDIT:
тест:
из моего локального аккаунта /home/johnb
I npm - установлен глобально некоторый генератор для yeoman
, например:
$ sudo npm install -g generator-laravel
природа:
выше действие вызвало некоторые зависимости, устанавливаемые внутри ~/.npm/
реж, имеющего root:root
собственности (из-за sudo ...
). Очевидно, npm не работает как локальный пользователь (или изменения зависимостей подкаталоги после собственности), когда тянет зависимостей и записи их на локальный каталогом пользователей ~/.npm/
.
До тех пор, пока npm будет настолько небрежен в отношении фундаментальных проблем безопасности файловой системы unix, проблема повторится.
решение:
Continuosly проверить, если
~/.npm/
содержит подкаталоги с правом собственности (и/или разрешений) кроме вашей локальной учетной записи пользователя, особенно, когда вы установить или обновить что-либо сsodo
(root). Если это так, измените владельца внутри~/.npm/
для локального пользователя рекурсивно.задать
npm, bower, grunt, ...
сообщество, что они решают эту проблему, как я описал выше.
Я получил эту ошибку при попытке установить плагин grunt. я обнаружил, что у меня была устаревшая версия npm, и ошибка ушла после обновления npm до последней версии
npm install -g npm
У меня есть аналогичная проблема specifucally : ERR! ENOENT enoent: нет такого файла или каталога, то chmod 'папки node_modules/НПМ/папки node_modules/запрос/папки node_modules/и HTTP-подпись/папки node_modules/sshpk/ОГРН/sshpk-сопу Я перепробовал все решения, но не повезло. Я использовал vagrant box, и проект был в общей папке. Проблемы, кажется, только там, когда я переместить проект в другую, не общую папку (с хозяином), вуаля! проблема решена. На всякий случай другой человек использовал также vagrant
Я пробовал все, что нашел в сети (npm cache clear
и rm -rf ~/.npm
), но ничего не работает. Проблема была решена путем обновления узла (и npm) до последней версии. Попробовать это.
в Windows у меня была аналогичная ошибка.
Поиск вставить данные приложения и поиск строки npm
.
Я заменил строку 'npm'
(включая цитаты) с 'npm.cmd'
как atlasboard\lib\package-dependency-manager.js
и atlasboard\lib\cli\commands.js
. Это решило проблему.
та же ошибка во время глобальной установки (npm install -g mymodule
) для пакета с несуществующим скриптом.
в пакет.в JSON:
...
"bin": {
"module": "./bin/module"
},
...
но ./bin/module
не существовало, как его называли modulejs
.
вы можете получить эту ошибку, если ваш узел.js также как-то поврежден. Я исправил эту ошибку, удалив/перезапустив/установив узел.js полностью и исправил эту ошибку вместе с тремя другими загадочными ошибками, которые были брошены.
я столкнулся с подобным поведением после обновления до npm 6.1.0
. Казалось, что это работает один раз, но затем я попал в состояние с этой ошибкой при попытке установить пакет, который был указан путем в файловой системе:
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
следующие вещи не исправлена проблема:
rm -rf node_modules
-
npm cache clean
(далnpm ERR! As of npm@5, the npm cache self-heals
....use 'npm cache verify' instead.
) npm cache verify
rm -rf ~/.npm
Как Я Исправлена проблема:
rm package-lock.json
у меня была аналогичная проблема с другой причина:yo node
генератор добавил "files": ["lib/"]
мой package.json
и cli.js
находился за пределами lib/
каталог, он был пропущен при публикации в npm.
(выпуск Йомена в https://github.com/yeoman/generator-node/issues/63 это должно быть исправлено в ближайшее время.)
Я получал ошибку " Ошибка: ENOENT, stat 'C:\Users\userName\AppData\Roaming\npm". Но такого справочника не было. Создал каталог, и установка npm начала работать
недавно я обновился до узла 4.2.1 на машине Windows 7 x64. При запуске
npm install -g bower
я получил аналогичную ошибку:
НПМ ERR! enoent ENOENT: нет такого файла или каталога, откройте 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH'
думая, что это связано с путем AppData, я играл с
npm config edit
и
npm config edit --global
изменить префикс, кэш и tmp поля, но получил ту же ошибку с новыми путями:
НПМ ERR! enoent ENOENT: нет такого файла или каталога, откройте 'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH'
все команды запускались от имени администратора, поэтому у меня были полные разрешения.
затем я подумал, что есть некоторые проблемы с существующими файлами, поэтому я побежал:
npm cache clean
но получил ту же ошибку. Тем не менее, были еще некоторые временные файлы, лежащие вокруг. Вручную удалив все временные данные с cygwin, наконец, исправил проблема для меня:
rm -rf bower bower.cmd node_modules etc
если у вас есть только Windows cmd, вы можете использовать что-то вроде
rmdir /S THE_TEMP_DIR
чтобы удалить все подкаталоги (хотя, если у вас есть глубоко вложенные зависимости узлов, это, как известно, проблематично)
Итак, возможно, есть некоторые проблемы с обновлением npm и наличием версий bower или других пакетов, висящих вокруг. В моем случае это казалось проблемой
при установке ionic я получил ниже ошибки
115648 ошибка enoent ENOENT: нет такого файла или каталога, переименовать 'C:\Users\UserName\AppData\Roaming\npm\node_modules.постановка\ansi-b11f0c4b' - > 'C:\Users\UserName\AppData\Roaming\npm\node_modules\ionic\node_modules\cordova-lib\node_modules\ansi'
не было папки с именем ansi
по этому пути. Я создал его там, и он установлен правильно.
Если вы пытались "сделать установку" в каталоге проекта с этой ошибкой, вы можете попробовать:
rm -rf ./node_modules
npm cache clear
npm remove sails
затем вы можете попробовать, чтобы "установить"
Если у вас есть " npm ERR! enoent ENOENT: нет такого файла или каталога, chmod '.../джем-бэкэнд/папки node_modules/Яш-украсить и JS/ОГРН/УСБ-украсить.js' " затем вы можете попробовать установить некоторую предыдущую версию js-beautify, больше комментариев: https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": {
...
"js-beautify": "1.6.14"
...
}
и выполнить "make install". Кажется, это работает, если у вас нет других зависимостей, требующих более высокой версии (1.7.0), в этом случае вы должны понизить эти пакеты также в пакетах.формат JSON.
или
ничего из вышеперечисленного не сработало для меня. Но!--0--> работала, потом npm i
начал работать. Не уверен, что пряжа исправлена, но быстрое и простое решение!