ошибки установки 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! <[email protected]>
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 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
на моем пути и я смог бежатьrm -rf ~/.npm npm install -g bower
это затем успешно установлено bower.
обновление формул brew и обновление установок, похоже, не работает для меня, я не уверен, почему. Удаление
.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, проблема будет повторяться.решение:
постоянно проверять, если
~/.npm/
содержит субдиры с правами собственности (и / или разрешениями), отличными от вашей учетной записи локального пользователя, особенно при установке или обновлении чего-либо сsodo
(корень). Если это так, измените владельца внутри~/.npm/
для локального пользователя рекурсивно.задать
npm, bower, grunt, ...
сообщество, что они решают эту проблему, как я описал ее выше.
Я получил эту ошибку при попытке установить плагин grunt. я обнаружил, что у меня была устаревшая версия npm, и ошибка исчезла после обновления npm до последней версии
npm install -g npm
У меня есть аналогичная проблема конкретно : Эр! enoent ENOENT: нет такого файла или каталога, chmod ' node_modules / npm/node_modules / request/node_modules / http-signature/node_modules/sshpk / bin/sshpk-conv Я перепробовал все решения, но не повезло. Я использовал vagrant box, и проект был в общей папке. Проблемы, кажется, только там, когда я переместить проект в другую, не общую папку (с хозяином), вуаля! проблема решена. Только в случае, если другое лицо использует также бродячие
Я перепробовал все, что нашел в сети (
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
я получил аналогичную ошибку:
npm ERR! enoent ENOENT: нет такого файла или каталога, откройте 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH -
думая, что это связано с путем AppData, я играл с
npm config edit
и
npm config edit --global
изменить префикс, кэш и tmp поля, но получил ту же ошибку с новыми путями:
npm 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-украсить, больше комментариев: https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": { ... "js-beautify": "1.6.14" ... }
и запуск "make install". Кажется, это работает в случае, если у вас нет других зависимостей, которые требуют более высокой версии (1.7.0) в этом случае вы должны понизить этот пакет также в пакетах.формат JSON.
или
ни один из выше работал для меня. Но
yarn install
работала, потомnpm i
начал работать. Не уверен, что пряжа фиксируется, но быстрое и простое решение!
пожалуйста, попробуйте это
SET HTTP_PROXY=<proxy_name>
тогда попробуйте это command.It будет работать
Comments