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

Как я исправил проблему:

  • rm package-lock.json

Ответ 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>

Затем попробуйте эту команду. Он будет работать