7 votes

Obtention de npm ERR ! ENOTDIR : pas un répertoire lors de l'installation d'un paquet qui dépend d'un autre

Note : J'ai les dernières versions de npm et node. J'ai essayé les réponses fournies dans npm install error ENOTDIR mais ça n'a pas marché pour moi.

J'ai besoin d'installer 2 modules npm obtenus sous forme de paquets .tgz sur NodeRed.

1. x.tgz
2. y.tgz

J'ai pu installer le premier paquet en utilisant npm install path/to/x.tgz

J'ai utilisé la même commande npm install path/to/y.tgz mais j'obtiens l'erreur suivante.

malintha@malintha-VirtualBox:~/.node-red$ sudo npm install path/to/y.tgz 

npm ERR! path path/to/y.tgz/x.tgz

npm ERR! code ENOTDIR
npm ERR! errno -20
npm ERR! syscall stat
npm ERR! ENOTDIR: not a directory, stat 'path/to/y.tgz/x.tgz'

D'après le journal des erreurs, le module y cherche x.tgz à l'intérieur. J'ai ensuite vérifié que le module package.json de y.tgz artefact.

Je peux voir qu'il a x.tgz comme dépendance, mais il n'y a pas de x.tgz dedans.

 "dependencies": {
    "@abc/pqr": "file:x.tgz",
    "ajv": "^6.5.1",
    "debug": "^3.1.0"
  }

D'après les instructions, tout devrait bien se passer si j'installe le fichier x.tgz puis le fichier y.tgz. Je pourrais les installer x y y il y a quelque temps mais maintenant je ne peux pas l'installer.

Quelle pourrait être la cause profonde de ce problème ? Ce problème est-il lié aux versions de npm et de node ?

2voto

Anselmo Park Points 531

Je réécris cette réponse après avoir supprimé mon ancienne réponse. Je l'ai testé avec et node v11.6.0 et npm v4.5.0-next.0 sur Linux.

Pour installer y.tgz, j'ai essayé comme ci-dessous :

  1. J'ai copié les deux fichiers tgz dans le même répertoire.
  2. J'ai modifié package.json de y.tgz comme ci-dessous :

    "dependencies": {
        "@abc/pqr": "file:../x.tgz",
        "ajv": "^6.5.1",
        "debug": "^3.1.0"
    }

dependencies soutient file: + chemin relatif ou chemin absolu.

Vous pouvez donc choisir n'importe qui comme condition de développement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X