Я пытаюсь глобально установить только что опубликованный модуль 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. Это не должно быть проблемой, my lib/cli.js
имеет обычные разрешения, а npm имеет права суперпользователя во время этой установки.
Покопавшись в документах npm, я нашел вариант, который не позволял npm создавать ссылки на bin ( --no-bin-links
), когда я пытался установить с ним, он работал нормально.
Так в чем же дело? Это какая-то странная ошибка, у которой пока нет решения?
Изменить: для справки, вот модуль, который я загрузил
--no-bin-links
просто останавливает npm от символических ссылок файлов вbin
хэше package.json на путь при глобальной установке.Ответы:
Хорошо, похоже, что NPM использует ваш
.gitignore
как основу для.npmignore
файла и поэтому игнорирует/lib
. Если вы добавите пустой.npmignore
файл в корень вашего приложения, все должно работать.[edit] - подробнее об этом поведении здесь: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
источник
Я столкнулся с похожей проблемой,
решил это.
источник
npm cache verify
и это сработало. спасибо за подсказку.npm install --cache /tmp/empty-cache
использовать временный кеш вместо того, чтобы уничтожать фактический.Эта проблема как-то возникла у меня на Mac, когда я пытался запустить
npm install -g bower
. Это давало мне ряд ошибок из-за того, что я не мог найти такие вещи, как graceful-fs. Я не уверен, как я изначально установил npm, но похоже, что, возможно, он пришел с node с использованием homebrew. Я впервые побежалЭто удалило оба
node
иnpm
с моего пути. Оттуда я просто переустановил егоКогда он завершился, у меня был
node
иnpm
мой путь, и я смог бежатьПосле этого беседка была успешно установлена.
Обновление формул пивоварения и установка обновлений, похоже, не помогли мне, я не уверен, почему. Удаление
.npm
папки помогло другим людям, и я безуспешно пытался это сделать. На этот раз я сделал это на всякий случай. Также обратите внимание, что ни одно из следующих действий не решило проблему для меня, хотя это помогло другим:источник
Я получал эту ошибку при установке npm, и добавление .npmignore не решило ее.
Я попытался перейти в указанную папку, но ее не было. Ошибка была исправлена, когда я создал папку npm в папке Roaming .
Это в Windows 8.1
источник
У меня была такая же проблема, и я только что нашел обработку, не упомянутую здесь. Хотя я бы внес свой вклад в сообщество:
npm install -g myapp
не копировалbin
каталог. Я обнаружил, что это произошло потому, что я не включил егоfiles
в свойpackage.json
источник
files
ключpackage.json
с некоторыми записями вродеindex.js
иLICENSE
, но не сbin
папкой. Так что это работает, еслиfiles
ключа нет вообще, или если естьfiles
ключ Иbin
папка внутри .Я получал аналогичную ошибку
npm install
при локальной установке:Я не уверен, что было причиной ошибки, но я недавно установил пару новых модулей узла локально, обновил узел с помощью homebrew и запустил npm update -g.
Единственный способ решить проблему - полностью удалить локальный каталог node_modules и запустить его
npm install
снова:источник
У меня точно такая же проблема: ERR! enoent ENOENT: нет такого файла или каталога, chmod 'node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv Я пробовал все вышеперечисленные решения, но не повезло. Я использовал бродячий ящик, а проект находился в общей папке. Проблемы, кажется, возникают только тогда, когда я перемещаю проект в другую не общую папку (с хостом), вуаля! задача решена. На случай, если другой человек тоже использовал бродягу
источник
Я получил аналогичное сообщение об ошибке при попытке
npm install
установить множество зависимостей. Оказывается, некоторые из них не могут быть установлены в Debian / Ubuntu, потому что они ожидают, что они/usr/bin/node
будут исполняемым файлом узла. Чтобы исправить, вам нужно сделатьили еще лучше,
Для получения дополнительной информации: https://stackoverflow.com/a/21171188/7581
источник
Я столкнулся с аналогичным поведением после обновления до npm
6.1.0
. Казалось, что однажды это сработало, но затем я попал в состояние с этой ошибкой при попытке установить пакет, который был указан путем в файловой системе:Следующие вещи не помогли устранить проблему :
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
источник
Я думаю, ваш скомпилированный кофейный скрипт отсутствует в опубликованном пакете npm. Попробуйте написать команду предварительной публикации .
источник
takeapeek/lib/cmd.js
что не существует. Несмотря на то, что папка lib может быть «там» при публикации, ее не будет «там» при установке через npm, если она не является частью репозитория или если вы не используете предварительную публикацию для ее создания.В моем случае (множественный код ENOENT errno 34) проблема была связана с
~/.npm/
доступом к каталогу. Внутри него было несколько подкаталогов сroot:root
правами, которые вызывали проблемы, когда я выполнял команды как обычный пользователь (безsudo
). Поэтому я сменил владельца всех подкаталогов и файлов внутри~/.npm/
каталога на моего локального пользователя и группу. Это сработало на моем Ubuntu (на Mac тоже должно работать).Вы должны знать свое имя пользователя, верно? Если нет, запустите
$ whoami
и замените им имя своей группы, например:РЕДАКТИРОВАТЬ:
Тестовый пример :
Из моей локальной учетной записи
/home/johnb
я npm-глобально установил какой-то генераторyeoman
, например:Природа проблемы :
Вышеупомянутое действие привело к установке некоторых зависимостей внутри
~/.npm/
каталога, имеющихroot:root
право собственности (из-заsudo ...
). Очевидно, что npm не запускается от имени локального пользователя (или впоследствии не меняет владение подкаталогами зависимостей) при извлечении зависимостей и записи их в подкаталог локального пользователя~/.npm/
. Пока npm будет так небрежно относиться к фундаментальным проблемам безопасности файловой системы unix, проблема будет повторяться.Решение :
Постоянно проверяйте, есть ли
~/.npm/
подкаталоги с владельцем (и / или разрешениями), отличным от вашей локальной учетной записи, особенно когда вы устанавливаете или обновляете что-то с помощьюsodo
(root). Если это так,~/.npm/
рекурсивно измените право собственности на локального пользователя.Попросите
npm, bower, grunt, ...
сообщество решить эту проблему, как я описал выше.источник
Я получил эту ошибку при попытке установить плагин grunt. Я обнаружил, что у меня устаревшая версия npm, и ошибка исчезла после обновления npm до последней версии
источник
Я перепробовал все, что нашел в сети (
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
) для пакета с несуществующим скриптом.В package.json:
Но
./bin/module
, как его назвали, не существовалоmodulejs
.источник
источник
Вы можете получить эту ошибку, если ваш node.js также каким-то образом поврежден. Я исправил эту ошибку, полностью удалив / перезапустив / установив node.js, и исправил эту ошибку вместе с тремя другими загадочными ошибками, которые возникли.
источник
Будьте осторожны с недопустимыми значениями ключей "каталогов" и "файлов" в package.json.
Если вы начинаете с нового приложения и хотите начать с полностью пустого, вам нужно либо начать с полностью пустой папки, либо иметь в нем действительный файл package.json.
Если вы не хотите сначала создавать файл package.json, просто введите:
npm i some_package
Пакет с именем «some_package» должен быть правильно установлен в новую подпапку «node_modules».
Если вы сначала создаете файл package.json, введите:
npm init
Сохраните все значения по умолчанию (просто нажав ENTER), вы должны получить действительный файл.Должно получиться так:
Обратите внимание, что отсутствуют следующие ключи: « каталоги », « репозиторий » и « файлы ». Похоже, что если вы используете неправильные значения для « каталогов » и / или « файлов », вы не сможете установить пакет. Оставив эти ключи, я решил проблему.
Также обратите внимание на ключ « main ». Он присутствует, но содержит недопустимое значение. Файла index.js пока не существует. Вы можете смело его удалить.
Теперь введите:
npm i some_package
и пакет с именем "some_package" должен быть правильно установлен в новую подпапку "node_modules".источник
Пробовал почти все, а затем, наконец, это:
Просто удалите node_modules, затем запустите
'npm install'
сноваисточник
У меня была аналогичная проблема с другой причиной:
yo node
генератор был добавлен"files": ["lib/"]
в my,package.json
и поскольку мойcli.js
был внеlib/
каталога, он пропускался при публикации в npm.(Проблема с Yeoman на https://github.com/yeoman/generator-node/issues/63 должна быть исправлена в ближайшее время.)
источник
Я получал сообщение об ошибке "Ошибка: ENOENT, stat 'C: \ Users \ userName \ AppData \ Roaming \ npm'. Но такого каталога не было. Создал каталог, и установка npm начала работать
источник
Недавно я обновился до узла 4.2.1 на машине с Windows 7 x64. При беге
У меня похожая ошибка:
Думая, что это связано с путем AppData, я поигрался с
и
чтобы изменить поля prefix, cache и tmp, но получил ту же ошибку с новыми путями:
Все команды выполнялись от имени администратора, поэтому у меня были полные права.
Затем я подумал, что с существующими файлами есть какие-то проблемы, и запустил:
Но получил ту же ошибку. Тем не менее, некоторые временные файлы все еще валялись. Удаление всех временных данных вручную с помощью cygwin наконец-то устранило проблему для меня:
Если у вас есть только Windows cmd, вы можете использовать что-то вроде
удалить все подкаталоги (хотя, если у вас есть глубоко вложенные зависимости узлов, это, как известно, проблематично)
Так что, возможно, есть некоторые проблемы с обновлением npm и зависанием версий bower или других пакетов. В моем случае это казалось проблемой
источник
При установке ionic я получил ошибку ниже
По
ansi
этому пути не было папки с именем . Я создал его там, и он правильно установил.источник
Если вы пытались выполнить установку в каталоге вашего проекта с этой ошибкой, вы можете попробовать:
тогда вы можете попробовать "сделать установку"
Если у вас есть «npm ERR! Enoent ENOENT: no such file or directory, chmod '... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js'», то вы можете попробовать установить какая-то предыдущая версия js-beautify, дополнительные комментарии: https://github.com/beautify-web/js-beautify/issues/1247
и выполните команду make install. Кажется, это работает в том случае, если у вас нет других зависимостей, требующих более высокую версию (1.7.0), в этом случае вы должны понизить версию этих пакетов также в packages.json.
или
источник
У меня ничего из вышеперечисленного не сработало. Но заработало
yarn install
, потомnpm i
заработало. Не уверен, какая пряжа исправлена, но решение быстрое и простое!источник
Сначала сделай
тогда делай
После этого установите все файлы, которые хотите добавить.
источник
Была аналогичная ошибка с npm в контейнере докеров для веб-пакета. Проблема была вызвана аргументом командной строки --user для docker run, потому что данный пользователь и группа каким-то образом испортили права на локальном томе. Надеюсь, это кому-то поможет :)
источник
У меня была аналогичная ошибка, но я много раз пытался запустить команду create-response-app, и, наконец, она была создана, это была проблема с моим подключением к Интернету. проверьте ваше интернет-соединение
источник
Пожалуйста, попробуйте это
Тогда попробуйте эту команду. Она будет работать
источник