Ответ 1
Попробуйте удалить файл package-lock.json
.
Недавно я обновил свой компьютер и вместе с ним до последней версии LTS Node и NPM:
У меня есть приложение 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 он просто не установит мои зависимости. Как я могу это решить?
Попробуйте удалить файл package-lock.json
.
Нет разрешения, нет проблемы с интернетом, это просто общая проблема npm
. Я решил проблему с пряжей.
yarn install
Или вы можете использовать no-optional
флаг.
npm install --no-optional
Просто удалите package-lock.json
а затем установите package-lock.json
пакеты. Все будет работать.
Я некоторое время боролся с этим, и, похоже, это связано с следующим.
Скажем, у вас есть 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 с вложенными зависимостями, а сообщения об ошибках и журналы не были очень описательными. Проверьте свое дерево зависимостей и посмотрите, есть ли у вас описанный случай, если это так, это ваша проблема.
Удаление и восстановление "package-lock.json" обычно решает эту проблему, однако это рискованно, поскольку вы, вероятно, будете обновлять несколько пакетов одновременно.
В моем случае оказалось, что существует одна конкретная версия пакета, на которую ссылается package-lock.json, которая находится на 5 уровнях в зависимости. Этой версии больше не было в реестре npm, поэтому установка прервалась. Я должен был найти, какой пакет вытягивал эту зависимость, и обновить ее, чтобы решить проблему.
предоставить более подробную информацию: какие ОС
npm ERR! /Users/Nag/.npm/_logs/2018-01-22T14_40_13_889Z-debug.log
вы можете поделиться своим журналом ошибок с помощью pastebin
Кажется, что файл/файл отсутствует
проверьте подключение к Интернету
Вероятно, несколько зависимых файлов отсутствуют или разрешено для создания папки. Это обычная проблема с npm
Для меня оказалось, что эти ошибки скрывали реальную проблему, которая заключалась в том, что мои учетные данные для стороннего хранилища npm (azure devops) истекли. Мне пришлось повторно запустить vsts-npm-auth -config .npmrc
, чтобы обновить токен в моем файле .npmrc
.