npm WARN notsup SKIPPING OPTIONAL DIPENDENCY: piattaforma non supportata per fsevents@1.0.14


113

Sto provando a eseguire questo progetto https://github.com/Soundnode/soundnode-app dopo aver aggiornato la mia versione minimatch a 3.10.9, ho ricevuto questo errore

npm WARN optional SKIPPING OPTIONAL DIPENDENCY: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: piattaforma non supportata per fsevents ricercato@.0 " os ":" darwin "," arch ":" any "} (attuale: {" os ":" win32 "," arch ":" ia32 "})

la mia configurazione è Node v - 4.4.2 npm v- 3.10.9 sto lavorando su un sistema operativo Windows a 32 bit


1
Non mi sembra un errore: hai problemi a eseguire il codice nonostante questo? npm WARNè proprio questo: un avvertimento a cui vale la pena prestare attenzione, ma che in realtà non ha rotto nulla.
Aurora0001

2
E questo particolare avviso ti sta solo dicendo che una dipendenza opzionale non è stata installata perché la tua piattaforma non corrispondeva ai suoi requisiti. In questo caso sta cercando Darwin e tu sei su win32
Dave V

è un progetto grugnito, dopo aver eseguito questo comando "npm install -g grunt-cli", cerco di eseguire npm install quando ricevo questo avviso,
Aishwary Tiwari

1
@ AishwaryTiwari, hai effettivamente ricevuto un errore o il codice non funziona? È improbabile che gli avvisi siano un problema reale, perché (come dice il messaggio di errore), ha saltato una dipendenza opzionale.
Aurora0001

1
C'è una richiesta pull che risolve il problema: github.com/npm/npm/pull/19198 Puoi iscriverti a quella richiesta pull, in modo da ottenere un aggiornamento quando verrà chiusa.
RiZKiT

Risposte:


150

È un avvertimento, non un errore. Si verifica perché fseventsè una dipendenza opzionale, utilizzata solo quando il progetto viene eseguito in ambiente macOS (il pacchetto fornisce "Accesso nativo a Mac OS-X FSEvents").

E poiché stai eseguendo il tuo progetto su Windows, fseventsviene saltato come irrilevante.

C'è un PR per correggere questo comportamento qui: https://github.com/npm/cli/pull/169


35
Qualcosa che è opzionale e dipendente non è contraddittorio?
Martijn Burger

7
Questa è più una questione teorica. Forse conditional dependencysarebbe meglio? Dare un nome è difficile. Immagino non sia stato facile trovare un buon nome per questo caso mantenendolo conciso.
piotr.d

10
npm install --no-optional
suiwenfeng

5
Sono totalmente d'accordo, @DemPilafian. Così ho modificato la mia risposta originale e rimosso "solo". Personalmente tratto gli avvisi come errori, ma in questo caso, IMHO, questo non dovrebbe essere registrato come un avviso, ma piuttosto come informazioni, poiché in ambiente Windows non puoi fare nulla per far scomparire l'avviso.
piotr.d

23
Buona risposta, ora come me ne sbarazzo?
TetraDev

32

Questo sembra ancora essere un problema, che causa l'interruzione delle installazioni dei pacchetti con avvisi sui pacchetti opzionali che non vengono installati a causa di "Piattaforma non supportata".

Il problema riguarda il "wrapping" o package-lock.jsonche viene persistito dopo ogni esecuzione del gestore di pacchetti. I tentativi successivi continuano a fallire poiché viene fatto riferimento a questo file anziché package.json.

L'aggiunta di queste opzioni al npm installcomando dovrebbe consentire la nuova installazione dei pacchetti.

   --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.

Il comando completo ha questo aspetto:

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

nJoy!


1
È rischioso impostare il --no-optionalflag per il codice che funziona solo per eliminare l'avviso? Perché non è impostato di default?
cederlof

5
Questa non può essere una soluzione poiché l'utilizzo di package-lock.json è una buona cosa e questa soluzione suggerisce il contrario.
ismailarilik

@ismailarilik Questa soluzione mi permette di installare i pacchetti in modo da poter continuare il mio lavoro.
nickl-

"--no-optional" è davvero una cattiva idea. Di solito va bene ignorare l'avviso. Puoi anche usare npm install -f: github.com/angular/angular/issues/13935
FoggyDay

12

Utilizzando il parametro --force:

npm i -f

2
Ho forzato l'installazione una volta con questo comando e ora quando avvio npm installnon ho alcun avviso grazie!
Allenile

1
Ho ricevuto alcuni errori durante l'esecuzione di quel comando, ma dopo aver rieseguito l'installazione di npm gli avvisi erano spariti! grazie signore
ccoutinho

Quindi stai installando nel tuo progetto quelle dipendenze inutili (in una macchina Windows) per far uscire gli avvertimenti? Se è così, spero che scuotendo gli alberi li sbarazzi durante la fase di produzione. Mi piace la soluzione alternativa. Elimina le cose relative alla mela sul mio schermo.
Josep Alacid,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.