Подтвердить что ты не робот

NPM "ENOENT: нет такой ошибки файла или каталога" при установке зависимостей Sails.js с узлом 8.9.4 LTS

Недавно я обновил свой компьютер и вместе с ним до последней версии LTS Node и NPM:

  • Node.js 8.9.4
  • НПМ 5.6.0

У меня есть приложение Sails.js 0.12.14, для которого я пытаюсь установить зависимости NPM с npm install но когда я это делаю, я получаю следующие ошибки:

➜  web-service git:(feature/auth) ✗ npm install
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/package.json'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/README.md'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/LICENSE'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/index.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/CHANGELOG.md'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/camelCase.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/uniqueId.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/bindKey.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/unnest.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/bindAll.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/unset.js'
// a bunch of similar Lodash errors removed from here
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/T.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/zipWith.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/lastIndexOfFrom.js'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/oauth-sign):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: Cannot cd into '/Users/Nag/Code/project/web-service/node_modules/.staging/oauth-sign-b13c86db'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/mkdirp):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: Cannot cd into '/Users/Nag/Code/project/web-service/node_modules/.staging/mkdirp-c94c8047'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/mkdirp/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: Cannot cd into '/Users/Nag/Code/project/web-service/node_modules/.staging/minimist-ba966a6e'

npm ERR! path /Users/Nag/Code/project/web-service/node_modules/.staging/sails-02afd14e/node_modules/@sailshq/body-parser
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/Users/Nag/Code/project/web-service/node_modules/.staging/sails-02afd14e/node_modules/@sailshq/body-parser' -> '/Users/Nag/Code/project/web-service/node_modules/.staging/@sailshq/body-parser-6d1e8405'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/Nag/.npm/_logs/2018-01-22T14_40_13_889Z-debug.log

Я не могу понять, что происходит, и не могу найти подходящие ответы в другом месте в Интернете. Я даже npm cache clean --force, rm -rf node_modules и rm -rf node_modules с аналогичными ошибками. Казалось, что он отлично работает, когда я был в Node ~ 6, но после перехода на Node 8.9.4 и NPM 5.6.0 он просто не установит мои зависимости. Как я могу это решить?

4b9b3361

Ответ 1

Попробуйте удалить файл package-lock.json.

Ответ 2

Нет разрешения, нет проблемы с интернетом, это просто общая проблема npm. Я решил проблему с пряжей.

yarn install

Или вы можете использовать no-optional флаг.

npm install --no-optional

Ответ 3

Просто удалите package-lock.json а затем установите package-lock.json пакеты. Все будет работать.

Ответ 4

Я некоторое время боролся с этим, и, похоже, это связано с следующим.

Скажем, у вас есть 3 модуля, A, B и C

Модуль A включает в себя B и C непосредственно Модуль B также включает в себя модуль C, в его зависимости package.json.

Если ваши зависимости package.json в модуле A выглядят следующим образом:

"dependencies": {
     "C": "^1.0.0",
     "B": "^1.1.0"
}

Вы получите вышеупомянутую ошибку, которую вы упомянули, ENOENT, blah, blah in.staging

Если, с другой стороны, вы включаете модуль с вложенными, включите сначала, как:

"dependencies": {
     "B": "^1.1.0",
     "C": "^1.0.0"
}

Ошибка исчезнет. Это похоже на ошибку в npm с вложенными зависимостями, а сообщения об ошибках и журналы не были очень описательными. Проверьте свое дерево зависимостей и посмотрите, есть ли у вас описанный случай, если это так, это ваша проблема.

Ответ 5

Удаление и восстановление "package-lock.json" обычно решает эту проблему, однако это рискованно, поскольку вы, вероятно, будете обновлять несколько пакетов одновременно.

В моем случае оказалось, что существует одна конкретная версия пакета, на которую ссылается package-lock.json, которая находится на 5 уровнях в зависимости. Этой версии больше не было в реестре npm, поэтому установка прервалась. Я должен был найти, какой пакет вытягивал эту зависимость, и обновить ее, чтобы решить проблему.

Ответ 6

предоставить более подробную информацию: какие ОС

npm ERR!     /Users/Nag/.npm/_logs/2018-01-22T14_40_13_889Z-debug.log

вы можете поделиться своим журналом ошибок с помощью pastebin

Кажется, что файл/файл отсутствует

  1. Запускать терминал как администратор (windows) или sudo (linux)
  2. Попробуйте удалить всю папку npm (удалить node_modules) и переустановить
  3. проверьте подключение к Интернету

    Вероятно, несколько зависимых файлов отсутствуют или разрешено для создания папки. Это обычная проблема с npm

Ответ 7

Для меня оказалось, что эти ошибки скрывали реальную проблему, которая заключалась в том, что мои учетные данные для стороннего хранилища npm (azure devops) истекли. Мне пришлось повторно запустить vsts-npm-auth -config .npmrc, чтобы обновить токен в моем файле .npmrc.