npm WARN notsup SAUT DEPENDANCE OPTIONNELLE: plate-forme non prise en charge pour [email protected]

113

J'essaye d'exécuter ce projet https://github.com/Soundnode/soundnode-app après avoir mis à jour ma version de minimatch vers 3.10.9, j'obtiens cette erreur

npm WARN optionnel SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY@: plate-forme non prise en charge pour fsevents1.0.14 os ":" darwin "," arch ":" any "} (actuel: {" os ":" win32 "," arch ":" ia32 "})

ma configuration est Node v - 4.4.2 npm v- 3.10.9 im fonctionnant sous Windows 32 bits

Aishwary Tiwari
la source
1
Cela ne me semble pas être une erreur - avez-vous des difficultés à exécuter le code malgré cela? npm WARNest juste cela - un avertissement qui mérite peut-être une attention particulière, mais qui n'a rien cassé.
Aurora0001
2
Et cet avertissement particulier vous indique simplement qu'une dépendance facultative ne s'est pas installée car votre plate-forme ne correspond pas à ses exigences. Dans ce cas, il recherche Darwin et vous êtes sur win32
Dave V
c'est un projet grognon, après avoir exécuté cette commande "npm install -g grunt-cli", j'essaye d'exécuter npm install quand j'obtiens cet avertissement,
Aishwary Tiwari
1
@AishwaryTiwari, avez-vous réellement eu une erreur ou le code ne fonctionne-t-il pas? Il est peu probable que les avertissements soient un problème réel, car (comme le dit le message d'erreur), ils ont ignoré une dépendance facultative.
Aurora0001
1
Il y a une pull request qui résout le problème: github.com/npm/npm/pull/19198 Vous pouvez vous abonner à cette pull request, donc vous obtenez une mise à jour quand elle sera fermée.
RiZKiT

Réponses:

150

C'est un avertissement, pas une erreur. Cela se produit car il fseventss'agit d'une dépendance facultative, utilisée uniquement lorsque le projet est exécuté sur un environnement macOS (le package fournit un `` accès natif à Mac OS-X FSEvents '').

Et puisque vous exécutez votre projet sous Windows, fseventsest ignoré car non pertinent.

Il existe un PR pour corriger ce problème ici: https://github.com/npm/cli/pull/169

piotr.d
la source
35
Est-ce que quelque chose qui est facultatif et dépendant ne se contredit pas?
Martijn Burger
7
C'est plus une question théorique. Ce conditional dependencyserait peut -être mieux? Nommer est difficile. Je suppose qu'il n'a pas été facile de trouver un bon nom pour cette affaire tout en restant concis.
piotr.d
10
npm install --no-optional
suiwenfeng
5
Je suis tout à fait d'accord, @DemPilafian. Ainsi j'ai édité ma réponse originale et ai enlevé "seulement". Je traite personnellement les avertissements comme des erreurs, mais dans ce cas, à mon humble avis, cela ne doit pas être enregistré comme un avertissement, mais plutôt comme une information, car dans l'environnement Windows, vous ne pouvez rien faire pour que l'avertissement disparaisse.
piotr.d
23
Bonne réponse, maintenant comment m'en débarrasser?
TetraDev
32

Cela semble toujours être un problème, provoquant l'abandon des installations de packages avec des avertissements concernant la non-installation des packages facultatifs en raison d'une "plate-forme non prise en charge".

Le problème concerne le "shrinkwrap" ou package-lock.jsonqui persiste après chaque exécution du gestionnaire de paquets. Les tentatives ultérieures échouent car ce fichier est référencé à la place de package.json.

L'ajout de ces options à la npm installcommande devrait permettre aux packages de s'installer à nouveau.

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.

La commande complète ressemble à ceci:

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!

nickl-
la source
1
Est-il risqué de définir le --no-optional-flag pour le code qui fonctionne juste pour se débarrasser de l'avertissement? Pourquoi n'est-il pas défini par défaut?
cederlof
5
Cela ne peut pas être une solution car utiliser package-lock.json est une bonne chose et cette solution suggère le contraire.
ismailarilik
@ismailarilik Cette solution me permet d'installer des packages pour que je puisse continuer mon travail.
nickl-
"--no-optional" est une très, vraiment mauvaise idée. Il est généralement normal d'ignorer l'avertissement. Vous pouvez également utiliser npm install -f: github.com/angular/angular/issues/13935
FoggyDay
13

Utilisation du paramètre --force:

npm i -f
JF
la source
2
J'ai forcé l'installation une fois avec cette commande et maintenant quand je lance npm installje n'ai aucun avertissement merci!
Allenile
1
J'ai eu des erreurs lors de l'exécution de cette commande, mais après avoir relancé npm install, les avertissements avaient disparu! merci monsieur
ccoutinho
Vous installez donc dans votre projet ces dépendances inutiles (dans une machine Windows) pour sortir les avertissements? Si tel est le cas, j'espère que les arbres secoueront leur élimination au bâtiment de production. J'aime la solution de contournement. Il supprime les éléments liés à la pomme sur mon écran.
Josep Alacid le