J'ai récemment mis à niveau mon ordinateur et avec lui, vers la dernière version LTS de Node et NPM:
J'ai une application Sails.js 0.12.14 pour laquelle j'essaie d'installer des dépendances NPM avec npm install
, mais lorsque je le fais, j'obtiens les erreurs suivantes:
➜ 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
Je n'arrive pas à comprendre ce qui se passe et à trouver des réponses adéquates ailleurs en ligne. J'ai même couru npm cache clean --force
, rm -rf node_modules
et réessayé avec des erreurs similaires. Cela semblait bien fonctionner lorsque j'étais sur le nœud ~ 6, mais après la mise à niveau vers le nœud 8.9.4 et NPM 5.6.0, cela n'installe pas mes dépendances. Comment puis-je résoudre ça?
Essayez de supprimer le fichier package-lock.json
.
Pas de permission, pas de problème internet, c'est juste un problème général de npm
. J'ai résolu le problème avec fil .
yarn install
Je me débattais avec cela pendant un certain temps, et cela semble être lié au suivant.
Disons que vous avez 3 modules, A, B et C
Le module A inclut directement B et C. Le module B comprend également le module C, dans ses dépendances package.json.
Si vos dépendances package.json dans le module A se présentent comme suit:
"dependencies": {
"C": "^1.0.0",
"B": "^1.1.0"
}
Vous obtiendrez l'erreur ci-dessus que vous avez mentionnée, ENOENT, bla, bla dans.
Si, par contre, vous incluez le module avec l'imbrication, incluez d'abord comme:
"dependencies": {
"B": "^1.1.0",
"C": "^1.0.0"
}
L'erreur disparaît. Cela ressemble à un bogue dans npm avec des dépendances imbriquées, et les messages d'erreur et les journaux n'étaient pas très descriptifs. Vérifiez votre arbre de dépendance et voyez si vous avez le cas décrit. Si c'est le cas, c'est votre problème.
supprimez simplement le fichier package-lock.json puis installez le paquet que vous voulez que tout fonctionne :-)