Come risolvere l'installazione di npm che genera l'avviso di fsevents su un sistema operativo non MAC?


115

Il seguente avviso viene lanciato a npm installcomando -

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 (node_modules\rea
ct-scripts\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}
)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\ch
okidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}
)

L'avvertimento sta apparentemente facendo sì che il nostro lavoro Jenkins non sia riuscito, quindi stiamo solo cercando di sbarazzarci dello stesso.

Ho già controllato questo https://stackoverflow.com/a/42938398/351903 Ma, a differenza di quanto menzionato, non ho alcun / node_modules / fserrors nella mia configurazione. Inoltre, il mio package.json non contiene fserrors. Di seguito è riportato il mio package.json -

{
  "name": "mvc-panel",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "bootstrap": "^3.3.7",
    "jquery": "^3.2.1",
    "material-ui": "^0.18.3",
    "qs": "^6.4.0",
    "react": "^15.5.4",
    "react-alert": "^2.1.2",
    "react-bootstrap-table": "^3.4.1",
    "react-dom": "^15.5.4",
    "react-loader": "^2.4.2",
    "react-router-dom": "^4.1.1",
    "react-tap-event-plugin": "^2.0.1",
    "serve": "^6.0.0"
  },
  "devDependencies": {
    "datatables.net": "^1.10.15",
    "jquery": "^3.2.1",
    "react-scripts": "^1.0.7"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

Posso vedere fsevents nel package.json di react-scripts (che è definito in devDependencies del mio package.json) in node_modules\react-scripts\package.json-

{
  "_args": [
    [
      {
        "raw": "react-scripts@^1.0.7",
        "scope": null,
        "escapedName": "react-scripts",
        "name": "react-scripts",
        "rawSpec": "^1.0.7",
        "spec": ">=1.0.7 <2.0.0",
        "type": "range"
      },
      "D:\\Sandeepan\\Payu MVC\\backend codebase\\MVC2.0\\panel\\mvc-panel"
    ]
  ],
  "_from": "react-scripts@>=1.0.7 <2.0.0",
  "_id": "react-scripts@1.0.14",
  "_inCache": true,
  "_location": "/react-scripts",
  "_nodeVersion": "8.5.0",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/react-scripts-1.0.14.tgz_1506471610836_0.5613740666303784"
  },
  "_npmUser": {
    "name": "timer",
    "email": "timer150@gmail.com"
  },
  "_npmVersion": "5.3.0",
  "_phantomChildren": {
    "asap": "2.0.6",
    "escape-string-regexp": "1.0.5",
    "graceful-fs": "4.1.11",
    "has-ansi": "2.0.0",
    "universalify": "0.1.1"
  },
  "_requested": {
    "raw": "react-scripts@^1.0.7",
    "scope": null,
    "escapedName": "react-scripts",
    "name": "react-scripts",
    "rawSpec": "^1.0.7",
    "spec": ">=1.0.7 <2.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "#DEV:/"
  ],
  "_resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.14.tgz",
  "_shasum": "70fe76c9beb67b136b953e875bdfe4ad78d410d1",
  "_shrinkwrap": null,
  "_spec": "react-scripts@^1.0.7",
  "_where": "D:\\Sandeepan\\Payu MVC\\backend codebase\\MVC2.0\\panel\\mvc-panel",
  "bin": {
    "react-scripts": "./bin/react-scripts.js"
  },
  "bugs": {
    "url": "https://github.com/facebookincubator/create-react-app/issues"
  },
  "dependencies": {
    "autoprefixer": "7.1.2",
    "babel-core": "6.25.0",
    "babel-eslint": "7.2.3",
    "babel-jest": "20.0.3",
    "babel-loader": "7.1.1",
    "babel-preset-react-app": "^3.0.3",
    "babel-runtime": "6.26.0",
    "case-sensitive-paths-webpack-plugin": "2.1.1",
    "chalk": "1.1.3",
    "css-loader": "0.28.4",
    "dotenv": "4.0.0",
    "eslint": "4.4.1",
    "eslint-config-react-app": "^2.0.1",
    "eslint-loader": "1.9.0",
    "eslint-plugin-flowtype": "2.35.0",
    "eslint-plugin-import": "2.7.0",
    "eslint-plugin-jsx-a11y": "5.1.1",
    "eslint-plugin-react": "7.1.0",
    "extract-text-webpack-plugin": "3.0.0",
    "file-loader": "0.11.2",
    "fs-extra": "3.0.1",
    "fsevents": "1.1.2",
    "html-webpack-plugin": "2.29.0",
    "jest": "20.0.4",
    "object-assign": "4.1.1",
    "postcss-flexbugs-fixes": "3.2.0",
    "postcss-loader": "2.0.6",
    "promise": "8.0.1",
    "react-dev-utils": "^4.1.0",
    "style-loader": "0.18.2",
    "sw-precache-webpack-plugin": "0.11.4",
    "url-loader": "0.5.9",
    "webpack": "3.5.1",
    "webpack-dev-server": "2.8.2",
    "webpack-manifest-plugin": "1.2.1",
    "whatwg-fetch": "2.0.3"
  },
  "description": "Configuration and scripts for Create React App.",
  "devDependencies": {
    "react": "^15.5.4",
    "react-dom": "^15.5.4"
  },
  "directories": {},
  "dist": {
    "integrity": "sha512-+p0q2N2WW7L4WW6uObqN7fYwSQZ9fBI0StpMYl1Ukoz/lCbemf+yW6b8refyhTsGy62GAqxlpyEfVcTE3hJAxg==",
    "shasum": "70fe76c9beb67b136b953e875bdfe4ad78d410d1",
    "tarball": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.14.tgz"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "bin",
    "config",
    "scripts",
    "template",
    "utils"
  ],
  "homepage": "https://github.com/facebookincubator/create-react-app#readme",
  "license": "MIT",
  "maintainers": [
    {
      "name": "timer",
      "email": "timer150@gmail.com"
    },
    {
      "name": "fb",
      "email": "opensource+npm@fb.com"
    },
    {
      "name": "gaearon",
      "email": "dan.abramov@gmail.com"
    }
  ],
  "name": "react-scripts",
  "optionalDependencies": {
    "fsevents": "1.1.2"
  },
  "readme": "ERROR: No README data found!",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/facebookincubator/create-react-app.git"
  },
  "version": "1.0.14"
}

Aggiornare

Ho provato a eseguire il comando npm install e ottenere lo stato di uscita del comando precedente. Ha mostrato 0 che significa successo, nonostante gli avvertimenti. Quindi, non sembra che il lavoro di Jenkins debba essere bloccato a causa di questo. Tuttavia, stiamo ancora cercando di trovare un modo per eliminare questo avviso perché non è rilevante per il nostro sistema operativo.


Prova questo, ha funzionato per me stackoverflow.com/a/58178041/4088675~~V~~aux~~singular~~1st Aggiunta FSEvents come optionaDependecy
Oluwaloni Richard

Risposte:


69

fseventsviene gestito in modo diverso in Mac e in altri sistemi Linux. Il sistema Linux ignora fseventsmentre il Mac lo installa. Poiché il messaggio di errore precedente afferma che fseventsè facoltativo e viene ignorato nel processo di installazione.

È possibile eseguire il npm install --no-optionalcomando nel sistema Linux per evitare l'avviso di cui sopra.

Ulteriori informazioni

https://github.com/npm/npm/issues/14185

https://github.com/npm/npm/issues/5095


16
Ho appena provato a eseguire npm install --no-optional affinché avoir venga avvertito per fsevents. Non ha funzionato però :(
Deunz

1
sfortunatamente questo porta ad altri problemi a causa di un bug in npm. Vedi github.com/npm/npm/issues/19877#issuecomment-368981968
TigerBear

3
Come dice TigerBear, "--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

4
Come faccio a rimuoverlo semplicemente come dipendenza opzionale per non mostrare l'avviso?
Aaron Franke

Non ha funzionato come pubblicizzato per me. Ubuntu 19.04 gennaio 2020
Michael Durrant

37
npm i -f

Vorrei ripubblicare alcuni commenti da questo thread , dove puoi leggere il problema e il problema è stato risolto .

Questo è esattamente il problema di Angular. L'attuale package.json richiede fsevent come non optionalDependencies ma devDependencies. Questo potrebbe essere un problema per gli utenti non OSX.

A volte

Anche se lo rimuovi da package.json npm non riesce ancora perché un altro modulo lo ha come dep peer.

Così

se npm-shrinkwrap.json è ancora presente, rimuoverlo o provare npm i -f


2
Cosa fa npm i -f?
Super Jade,

2
Esiste un filato equivalente a npm i -f?
Super Jade,

35

Se vuoi nascondere questo avviso, devi solo installare fsevents come dipendenza opzionale. Basta eseguire:

npm i fsevents@latest -f --save-optional

..E l'avviso non sarà più un fastidio.


9
Questa non è un'opzione per utenti non Mac.
Matteo

3
fallisce non non-mac
Naringas il

2
l'OP ha detto: "... cercando di trovare un modo per sbarazzarsi di questo avviso perché non è rilevante per il nostro sistema operativo", quindi la soluzione proposta non funziona.
matthiku

1
Hai aggiunto l'opzione "-f"?
Juninho Cruz

10

package.jsonconta con una optionalDependencieschiave. NPM su dipendenze facoltative .

Puoi aggiungere fseventsa questo oggetto e se ti ritrovi a installare pacchetti su una piattaforma diversa da MacOS, fseventsverranno saltati da filato o npm .

"optionalDependencies": {
  "fsevents": "2.1.2"
},

Troverai un messaggio come il seguente nel registro di installazione:

info fsevents@1.2.11: The platform "linux" is incompatible with this module.
info "fsevents@1.2.11" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents@2.1.2: The platform "linux" is incompatible with this module.
info "fsevents@2.1.2" is an optional dependency and failed compatibility check. Excluding it from installation.

Spero che sia d'aiuto!


6

Ho trovato lo stesso problema e ho provato tutte le soluzioni sopra menzionate e in GitHub. Alcuni funzionano solo nel repository locale, quando spingo il mio PR in repository remoti con travic-CI o Pipeline mi restituiscono lo stesso errore. Alla fine l'ho risolto usando il comando npm di seguito.

npm audit fix --force


Il problema è che non tutti hanno npm-audite quando provo a installarlo npm install npm-auditfallisce drasticamente ...
Serj Sagan

Questo ha funzionato per me a condizione che avessi anche installato fsevents come dipendenza opzionale come descritto da diverse risposte qui.
Safa Alai

3

Ho anche avuto lo stesso problema anche se sto usando MacOS. Il problema è una specie di bug. Ho risolto questo problema eseguendo ripetutamente i comandi,

sudo npm cache clean --force 
sudo npm uninstall 
sudo npm install

Una volta non ha funzionato, ma quando ho ripulito ripetutamente la cache e dopo aver disinstallato npm, reinstallato npm, l'errore è andato via. Sto usando Angular 8 e questo problema è comune



1

Sto usando Angular CLI: 8.1.2 Node: 12.14.1 OS: win32 x64

Stranamente, questo mi ha aiutato

npm cache clean --force
npm uninstall @angular/cli
npm install @angular/cli@8.1.2

1
Quella npm cache clean --force ha finito per aiutarmi non esattamente nella stessa questione, ma in un'altra questione riguardante le dipendenze di fsevents.
Josh

1

Invece di usarlo --no-optionalogni volta, possiamo semplicemente aggiungerlo a npm o alla configurazione del filato.

Per Yarn, esiste una configurazione predefinita non facoltativa, quindi possiamo semplicemente modificarla:

yarn config set ignore-optional true

Per npm, non esiste un set di configurazione predefinito, quindi possiamo crearne uno:

npm config set ignore-optional true

0

Ho ricevuto lo stesso errore. Nel mio caso, stavo usando un'unità mappata per modificare il codice da un secondo computer, quel computer eseguiva Linux. Non sono sicuro del motivo per cui gulp-watch si basa sulla compatibilità del sistema operativo prima dell'installazione (presumo che abbia a che fare con scopi di sicurezza). Essenzialmente l'errore sta controllando il tuo sistema operativo e il sistema operativo che chiama il modulo del nodo, nel mio caso i due sistemi operativi non erano gli stessi quindi ha lanciato l'errore. Che dall'aspetto del tuo errore è uguale al mio.

L'errore

Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

Come l'ho risolto?

Ho effettuato l'accesso direttamente al computer Linux e sono corso

npm install --save-dev <module-name>

Quindi sono tornato nel mio ambiente di programmazione e dopo è andato tutto bene.

Spero che aiuti!


usa questo npm i fsevents@latest -f --save-optional
RAVI BANGKIT NUR ZIKRILLAH

-1

Sì, funziona quando con il comando npm install --no-optional
Utilizzo dell'ambiente:

  • iTerm2
  • macos accedi al mio vm ubuntu16 LTS.

-1

Ho ricevuto questo errore, sistema Linux (Ubuntu) e questo potrebbe accadere quando esegui:

npm install

1) Se il progetto non è presente nel disco locale / computer, copiarlo sul computer e riprovare. Quindi ottieni il permesso di accedere alla cartella (assicurati solo di avere il permesso di accesso).

2) Se ricevi ancora avvisi o errori, esegui:

Correzione dell'audit npm

Questo risolverà le vulnerabilità nelle tue dipendenze e può aiutarti a correggere una vulnerabilità fornendo comandi npm semplici da eseguire e consigli per un'ulteriore risoluzione dei problemi.

Spero che sia d'aiuto!


-1

Passa a PNPM: https://pnpm.js.org/

Gli fseventsavvisi sono spariti (su Linux).

Anche l'ultimo filato (2.x) mostra le avvertenze.


La mancanza dell'avviso qui è probabilmente dovuta al modo in cui pnpm memorizza nella cache le dipendenze. Probabilmente hai ancora ricevuto l'avviso una volta, ma gli usi successivi consistono semplicemente nella creazione di collegamenti simbolici, saltando l'installazione che genera l'avviso. Se dovessi svuotare la cache pnpm, probabilmente avresti di nuovo gli avvisi. In ogni caso, questa è un'opzione "curare la malattia uccidendo il paziente", non una soluzione.
erich2k8

@ erich2k8 Hai sbagliato. Ho cancellato la cache di pnpm e l'avviso non appare durante l'installazione di pnpm.
KTCO

-2

Se qualcuno ottiene questo errore per l'installazione di ionic cordova. usa questo codice npm install --no-optionalnel tuo cmd. E poi esegui questo codicenpm install -g ionic@latest cordova


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.