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, и я проверил triple все в пакете, все должно работать. Я немного поработал и увидел пару случаев симиллера, ни одна из которых не была решена. Вот что я пробовал.
- Обновление npm (
sudo npm install -g npm
)
- Очистить глобальный кеш-нпп (
sudo npm cache clear
)
- Очистить кеш пользователя npm (
npm cache clear
)
Я заметил, что ошибка связана с файлом, который я связываю с этим путем, особенно когда npm пыталась выполнить chmod. Это не должно быть проблемой, мой lib/cli.js
имеет обычные разрешения, а npm имеет права суперпользователя во время этой установки.
После того, как я просмотрел документы npm, я нашел вариант, который остановил бы npm от создания ссылок на bin (--no-bin-links
), когда я попытался установить с ним, он работал нормально.
Так что же сделка? Является ли это некоторой странной ошибкой бахромы для случаев, которая еще не имеет решения?
Изменить: для справки здесь - это модуль, который я загрузил
Ответы
Ответ 1
Хорошо, похоже, что NPM использует ваш .gitignore
в качестве базы для файла .npmignore
и, таким образом, игнорирует /lib
. Если вы добавите пустой файл .npmignore
в корень вашего приложения, все должно работать.
[edit] - больше информации об этом поведении здесь: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
Ответ 2
У меня возникла аналогичная проблема,
npm cache clean
решил.
Ответ 3
Эта проблема возникла для меня на Mac, когда я пытался запустить npm install -g bower
. Это давало мне ряд ошибок, из-за того, что я не мог найти такие вещи, как грациозно-fs. Я не уверен, как я установил npm изначально, но похоже, что это спустилось с помощью node с использованием homebrew. Я сначала побежал
brew uninstall node
Это удалило как node
, так и npm
из моего пути. Оттуда я просто переустановил его
brew install node
Когда он завершился, у меня были node
и npm
на моем пути, и я смог запустить
rm -rf ~/.npm
npm install -g bower
Затем он успешно установил колотушку.
Обновление формул brew и обновление установок не помогли мне, я не уверен, почему. Удаление папки .npm
было чем-то, что работало для других людей, и я пробовал это без успеха. На этот раз я сделал это на всякий случай. Обратите внимание также, что ни одно из следующих решений для меня не разрешило проблему, хотя для других это делало:
npm cache clean
sudo npm cache clean
Ответ 4
Я получал эту ошибку при установке npm и добавлении .npmignore не решал ее.
Ошибка: ENOENT, stat 'C:\Users\My-UserName\AppData\Roaming\npm'
Я попытался перейти к указанной папке, и ее не было.
Ошибка была исправлена, когда я создала папку npm в папке Роуминг.
Это в Windows 8.1
Ответ 5
У меня была такая же проблема, и я просто нашел обработку, не упомянутую здесь. Хотя я бы внес вклад в сообщество:
npm install -g myapp
не копировал каталог bin
. Я нашел это потому, что не включил его в files
в мой package.json
"files": [
"lib",
"bin" // this was missing
]
Ответ 6
У меня получилось подобное сообщение об ошибке при попытке npm install
связки зависимостей. Оказывается, некоторые из них не могут быть установлены на Debian/Ubuntu, потому что они ожидают, что /usr/bin/node
будет исполняемым файлом node. Чтобы исправить это, вам нужно
sudo ln -s nodejs /usr/bin/node
или еще лучше,
sudo apt-get install nodejs-legacy
За дополнительной информацией: fooobar.com/questions/16060/...
Ответ 7
Я получал аналогичную ошибку на npm install
при локальной установке:
npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'
Я не уверен, что вызвало ошибку, но я недавно установил пару новых node модулей локально, обновил node с помощью homebrew и выполнил 'npm update -g'.
Единственный способ решить проблему - удалить локальный каталог node_modules и снова запустить npm install
:
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
Ответ 8
Я думаю, что ваш собранный кофе script отсутствует в опубликованном пакете npm. Попробуйте написать команду prepublish.
Ответ 9
В моем случае (множественный код 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
я npm установлен глобально какой-то генератор для yeoman
, например:
$ sudo npm install -g generator-laravel
Проблемная природа:
Вышеуказанное действие вызвало некоторые зависимости, установленные внутри ~/.npm/
dir, имеющие root:root
право собственности (из-за sudo ...
). Очевидно, что npm не запускается в качестве локального пользователя (или впоследствии заменяет подчиненное подчинение), вытягивая зависимости и записывая их в локальный пользовательский subdir ~/.npm/
.
Пока npm будет настолько небрежно относиться к фундаментальным проблемам безопасности файловой системы UNIX, проблема будет повториться.
Решение
-
Непрерывно проверяйте, содержит ли ~/.npm/
поддиры с правами собственности (и/или разрешениями), отличными от вашей локальной учетной записи пользователя, особенно когда вы устанавливаете или обновляете что-либо с помощью sodo
(root). Если это так, измените право собственности внутри ~/.npm/
на локального пользователя рекурсивно.
-
Спросите сообщество npm, bower, grunt, ...
, что они решают эту проблему, как я описал ее выше.
Ответ 10
Я получил эту ошибку, пытаясь установить плагин grunt. Я обнаружил, что у меня была устаревшая версия npm, и ошибка исчезла после обновления npm до последней версии.
npm install -g npm
Ответ 11
У меня есть аналогичная проблема:
ERR! enoent ENOENT: нет такого файла или каталога, chmod 'node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv
Я пробовал все вышеперечисленные решения, но не повезло.
Я использовал бродячий бокс, и проект был в общей папке. Проблемы, кажется, существуют только там, когда я перемещаю проект в другую не общую папку (хост), вуаля! задача решена.
На всякий случай другой человек использовал также бродягу
Ответ 12
Я попробовал все, что нашел в сети (npm cache clear
и rm -rf ~/.npm
), но ничего не работает. Решена проблема обновления node (и npm) до последней версии. Попробуйте это.
Ответ 13
В Windows у меня была аналогичная ошибка.
Поиск вставить данные приложения и поиск строки npm
.
Я заменил строку 'npm'
(включая кавычки) на 'npm.cmd'
как в atlasboard\lib\package-dependency-manager.js
, так и в atlasboard\lib\cli\commands.js
. Это устранило проблему.
Ответ 14
Такая же ошибка при глобальной установке (npm install -g mymodule
) для пакета с несуществующим script.
В package.json:
...
"bin": {
"module": "./bin/module"
},
...
Но ./bin/module
не существует, так как он был назван modulejs
.
Ответ 15
- Установите последнюю версию node
- Запуск: очистка кэша npm
- Запуск: npm install cordova -g
Ответ 16
Вы можете получить эту ошибку, если ваш node.js также поврежден. Я исправил эту ошибку, полностью удалив/перезагрузив/установил node.js и исправил эту ошибку вместе с тремя другими таинственными ошибками, которые были выброшены.
Ответ 17
Я встретил подобное поведение после обновления до 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 [email protected], the npm cache self-heals
use 'npm cache verify' instead.
). -
npm cache verify
-
rm -rf ~/.npm
Как я исправил проблему:
Ответ 18
Будьте осторожны с недопустимыми значениями для ключей "directory" и "files" в package.json
Если вы начинаете с нового приложения и хотите начать с нуля, вы должны либо начать с полностью пустой папки, либо иметь в ней действительный файл package.json.
Если вы не хотите сначала создавать файл package.json, просто наберите: npm я some_package
Пакет с именем "some_package" должен быть правильно установлен в новую подпапку "node_modules".
Если вы сначала создадите файл package.json, наберите: npm init
Сохраните все значения по умолчанию (просто нажав ENTER), в результате вы получите правильный файл.
Это должно выглядеть так:
{
"name": "yourfoldername",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Обратите внимание, что отсутствуют следующие ключи: "каталоги", "хранилище" и "файлы". Похоже, что если вы используете неправильные значения для "каталогов" и/или "файлов", вы не сможете установить пакет. Оставив эти ключи, я решил эту проблему.
Также обратите внимание на клавишу "основной". Это присутствует, но оно содержит недопустимое значение. Файл "index.js" не существует (пока). Вы можете безопасно удалить его.
Теперь введите: npm я some_package
и пакет с именем "some_package" должен быть правильно установлен в новую подпапку "node_modules".
Ответ 19
У меня была аналогичная проблема с другой причиной: генератор yo node
добавил "files": ["lib/"]
к моему package.json
и потому, что мой cli.js
был вне каталога lib/
, он пропускался при публикации НПМ.
(Вывод Yeoman на https://github.com/yeoman/generator-node/issues/63, он должен быть исправлен в ближайшее время.)
Ответ 20
Я получал сообщение об ошибке "Ошибка: ENOENT, stat" C:\Users\userName\AppData\Roaming\npm '. Но такого каталога не было. Создан каталог, а установка npm начала работать
Ответ 21
Недавно я обновился до node 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
чтобы удалить все подкаталоги (хотя, если у вас есть глубоко вложенные зависимости node, это, как известно, проблематично)
Итак, возможно, есть некоторые проблемы с обновлением npm и наличием версий бесед или других пакетов, висящих вокруг. В моем случае это казалось проблемой
Ответ 22
При установке ионного сигнала я получил ошибку ниже
115648 error enoent ENOENT: нет такого файла или каталога, переименовать 'C:\Users\имя_пользователя\AppData\Roaming\НПМ\ node_modules.staging\ANSI-b11f0c4b' → 'C:\Users\UserName\AppData\Roaming\npm\node_modules\ionic\node_modules\cordova-lib\node_modules\ansi'
На этом пути не было папки с именем ansi
. Я создал его там и правильно установил.
Ответ 23
Если вы попытались "сделать установку" в своем каталоге проекта с этой ошибкой, вы можете попробовать:
rm -rf ./node_modules
npm cache clear
npm remove sails
тогда вы можете попробовать "сделать установку"
Если у вас есть "npm ERR! enoent ENOENT: нет такого файла или каталога, chmod '.../djam-backend/ node_modules/js-beautify/js/bin/css-beautify.js", тогда вы можете попытаться установить некоторую предыдущую версию js-beautify, больше комментариев: https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": {
...
"js-beautify": "1.6.14"
...
}
и запустить "make install". Это похоже на то, что если у вас нет других зависимостей, требующих более высокой версии (1.7.0), в этом случае вы должны понизить этот пакет также в пакетах .json.
или
Ответ 24
Ничто из этого не помогло мне. Но yarn install
работал, затем npm i
начал работать. Не уверен, какая пряжа исправлена, но быстрое и простое решение!
Ответ 25
Сначала сделайте
npm rm -rdf node_modules
тогда делай
npm install
После этого установите любые файлы, которые вы хотите добавить
Ответ 26
Creating a new React app in C:\Users\CM\Downloads\react\github-profile.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...
npm ERR! path C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335b1
0893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall lstat
npm ERR! Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6
5545008a3cad93d00f806'
npm ERR! { [Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1f
a335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6554500
8a3cad93d00f806']
npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1
fa335b10893d67f7339e4
af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806'
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-
npm ERR! stack:
npm ERR! 'Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015
eec65545008a3cad93d00f806'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335
b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93
d00f806',
npm ERR! parent: 'postcss-image-set-function' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It possible that the file was already in use (by a
text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-
check thenpm ERR! permissions of the file and its containing directories, or
try running
npm ERR! the command again as root/Administrator (though this is not
recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\CM\AppData\Roaming\npm-cache_logs\2019-03-22T10_
27_19_722Z-debug.log
Aborting installation.
npm install --save --save-exact --loglevel error react react-dom react-
scripts has failed.
Deleting generated file... node_modules
Deleting generated file... package.json
Deleting GitHub-profile/ from C:\Users\CM\Downloads\reactDone.''
Я столкнулся с подобной ошибкой, но я пытался выполнить команду create-реагировать-приложение много раз, и, наконец, она была создана, это была проблема с моим подключением к Интернету. проверьте подключение к интернету
Ответ 27
Пожалуйста, попробуйте
SET HTTP_PROXY=<proxy_name>
Затем попробуйте эту команду. Он будет работать