Comment résoudre l'installation de npm en lançant un avertissement fsevents sur un système d'exploitation non MAC?

115

L'avertissement suivant est lancé sur npm installcommande -

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'avertissement provoque apparemment l'échec de notre Job Jenkins, donc nous essayons simplement de nous débarrasser de la même chose.

J'ai déjà vérifié ce https://stackoverflow.com/a/42938398/351903 Mais, contrairement à ce qui est mentionné ici, je n'ai aucun / node_modules / fserrors dans ma configuration. De plus, mon package.json ne contient pas de fserrors. Voici mon 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"
  }
}

Je peux voir fsevents dans le package.json de react-scripts (qui est défini sous devDependencies de mon package.json) dans 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": "[email protected]",
  "_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": "[email protected]"
  },
  "_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": "[email protected]"
    },
    {
      "name": "fb",
      "email": "[email protected]"
    },
    {
      "name": "gaearon",
      "email": "[email protected]"
    }
  ],
  "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"
}

Mise à jour

J'ai essayé d'exécuter la commande npm install et d'obtenir l'état de sortie de la commande précédente. Il a montré 0 signifiant le succès, malgré les avertissements. Donc, il ne semble pas que le travail de Jenkins doive être bloqué à cause de cela. Cependant, nous essayons toujours de trouver un moyen de se débarrasser de cet avertissement car il n'est pas pertinent pour notre système d'exploitation.

Sandeepan Nath
la source
Essayez ceci, cela a fonctionné pour moi stackoverflow.com/a/58178041/4088675 Ajout de fsevents en optionaDependecy
Oluwaloni Richard

Réponses:

69

fseventsest traité différemment dans mac et d'autres systèmes Linux. Le système Linux ignore fseventsalors que mac l'installe. Comme l'indique le message d'erreur ci-dessus, cela fseventsest facultatif et est ignoré dans le processus d'installation.

Vous pouvez exécuter la npm install --no-optionalcommande dans le système Linux pour éviter l'avertissement ci-dessus.

Informations complémentaires

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

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

ashisrai_
la source
16
J'ai juste essayé d'exécuter npm install - non facultatif pour ne pas être averti pour fsevents.
Cela
1
malheureusement cela conduit à d'autres problèmes dus à un bug dans npm. Voir github.com/npm/npm/issues/19877#issuecomment-368981968
TigerBear
3
Comme le dit TigerBear, "--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
4
Comment puis-je simplement le supprimer en tant que dépendance facultative pour ne pas afficher l'avertissement?
Aaron Franke
N'a pas fonctionné comme annoncé pour moi. Ubuntu 19.04 janvier 2020
Michael Durrant
37
npm i -f

Je voudrais republier quelques commentaires de ce fil , où vous pouvez lire sur le problème et le problème a été résolu .

C'est exactement le problème d'Angular. L'actuel package.json nécessite fsevent comme non pas optionalDependencies mais devDependencies. Cela peut être un problème pour les utilisateurs non OSX.

quelquefois

Même si vous le supprimez de package.json npm, j'échoue toujours car un autre module l'a en tant que dép.

Donc

si npm-shrinkwrap.json est toujours là, veuillez le supprimer ou essayez npm i -f

sr9yar
la source
2
Que fait npm i -f-on?
Super Jade
2
Y a-t-il un fil équivalent à npm i -f?
Super Jade
35

Si vous souhaitez masquer cet avertissement, il vous suffit d'installer fsevents en tant que dépendance facultative. Exécutez simplement:

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

..Et l'avertissement ne sera plus un problème.

Juninho Cruz
la source
9
Ce n'est pas une option pour les utilisateurs non-Mac.
Matthew le
3
échoue non non-mac
naringas
2
l'OP a déclaré: "... essayer de trouver un moyen de se débarrasser de cet avertissement car il n'est pas pertinent pour notre système d'exploitation", donc la solution proposée ne fonctionne pas.
matthiku le
1
Avez-vous ajouté l'option "-f"?
Juninho Cruz le
10

package.jsoncompte avec une optionalDependenciesclé. NPM sur les dépendances facultatives .

Vous pouvez ajouter fseventsà cet objet et si vous vous trouvez en train d'installer des packages sur une plate-forme différente de MacOS, fseventsils seront ignorés par yarn ou npm .

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

Vous trouverez un message comme le suivant dans le journal d'installation:

info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.

J'espère que cela aide!

Esteban Borai
la source
6

J'ai trouvé le même problème et j'ai essayé toutes les solutions mentionnées ci-dessus et dans github. Certains ne fonctionnent que dans un référentiel local, lorsque je pousse mon PR dans des référentiels distants avec travic-CI ou Pipelines, me renvoie la même erreur. Enfin, je l'ai corrigé en utilisant la commande npm ci-dessous.

npm audit fix --force

eli
la source
Le problème est que tout le monde ne l'a pas fait npm-auditet quand j'essaye de l'installer avec, npm install npm-auditil échoue radicalement ...
Serj Sagan
Cela a fonctionné pour moi à condition que fsevents soit également installé en tant que dépendance facultative, comme décrit par plusieurs réponses ici.
Safa Alai le
3

J'ai également eu le même problème en utilisant MacOS. Le problème est une sorte de bug. J'ai résolu ce problème en exécutant à plusieurs reprises les commandes,

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

Une fois, cela n'a pas fonctionné, mais lorsque j'ai nettoyé le cache à plusieurs reprises et après avoir désinstallé npm, réinstallé npm, l'erreur s'est produite. J'utilise Angular 8 et ce problème est courant

Parthan_akon
la source
1

J'utilise Angular CLI: 8.1.2 Node: 12.14.1 OS: win32 x64

Étrangement, cela m'a aidé

npm cache clean --force
npm uninstall @angular/cli
npm install @angular/cli@8.1.2
Pallavi
la source
1
Ce cache npm clean --force a fini par m'aider pas exactement dans le même domaine, mais dans un autre domaine concernant les dépendances fsevents.
josh
1

À la place d'utiliser --no-optional chaque fois, nous pouvons simplement l'ajouter à npm ou à yarn config.

Pour Yarn, il existe une configuration par défaut non facultative, nous pouvons donc simplement modifier cela:

yarn config set ignore-optional true

Pour npm, il n'y a pas de jeu de configuration par défaut, nous pouvons donc en créer un:

npm config set ignore-optional true
Hamsa Vardhan Darapureddi
la source
0

J'ai eu la même erreur. Dans mon cas, j'utilisais un lecteur mappé pour modifier le code d'un deuxième ordinateur, cet ordinateur exécutait Linux. Je ne sais pas exactement pourquoi gulp-watch s'appuie sur la compatibilité du système d'exploitation avant l'installation (je suppose que cela a à voir avec des raisons de sécurité). Essentiellement, l'erreur est la vérification par rapport à votre système d'exploitation et au système d'exploitation appelant le module de nœud, dans mon cas, les deux systèmes d'exploitation n'étaient pas les mêmes, donc cela a généré une erreur. Lequel de l'apparence de votre erreur est le même que le mien.

L'erreur

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

Comment je l'ai réparé?

Je me suis connecté directement à l'ordinateur Linux et j'ai couru

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

Puis je suis retourné dans mon environnement de codage et tout allait bien après cela.

J'espère que ça t'as aidé!

ARLCode
la source
utiliser ceci npm i fsevents@latest -f --save-optional
RAVI BANGKIT NUR ZIKRILLAH
-1

Oui, cela fonctionne avec la commande npm install --no-optional
Utilisation de l'environnement:

  • iTerm2
  • Connectez-vous macos à ma vm ubuntu16 LTS.
Gu Steven
la source
-1

J'avais cette erreur, le système Linux (Ubuntu) et cela pourrait se produire lorsque vous exécutez:

npm installer

1) Si le projet n'est pas présent sur votre disque / ordinateur local, copiez-le sur votre ordinateur et réessayez. Vous obtenez donc l'autorisation d'accéder au dossier (assurez-vous simplement que vous avez l'autorisation d'accès).

2) Si vous obtenez toujours des avertissements ou des erreurs, exécutez:

correction d'audit npm

Cela résoudra les vulnérabilités de vos dépendances et peut vous aider à corriger une vulnérabilité en fournissant des commandes npm simples à exécuter et des recommandations pour un dépannage supplémentaire.

J'espère que cela aide!

Harish Kulkarni
la source
-1

Passez à PNPM: https://pnpm.js.org/

Les fseventsavertissements ont disparu (sous Linux).

Même le dernier fil (2.x) affiche les avertissements.

KTCO
la source
L'absence d'avertissement ici est probablement due à la façon dont pnpm met en cache les dépendances. Vous avez probablement encore eu l'avertissement une fois, mais les utilisations suivantes consisteraient simplement à créer des liens symboliques, en ignorant l'installation qui émet l'avertissement. Si vous deviez vider votre cache pnpm, vous aurez probablement à nouveau les avertissements. Quoi qu'il en soit, il s'agit d'une option «guérir la maladie en tuant le patient», pas d'une solution.
erich2k8
@ erich2k8 Vous avez tort. J'ai effacé le cache pnpm et l'avertissement n'apparaît pas lors de l'installation de pnpm.
KTCO le
-2

Si quelqu'un obtient cette erreur pour l'installation de cordova ionique. utilisez simplement ce code npm install --no-optionaldans votre cmd. Et puis exécutez ce codenpm install -g ionic@latest cordova

Maizied Hasan Shuvo
la source
-5

Utilisez sudo npm install -g appium.

Babue
la source