172 votes

Comment résoudre le problème de l'avertissement "fsevents" de l'installation de npm sur les systèmes d'exploitation non MAC ?

L'avertissement suivant est lancé sur npm install commande -

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"}
)

Apparemment, l'avertissement fait que notre travail Jenkins est marqué comme ayant échoué, et nous essayons donc de nous en débarrasser.

Je l'ai déjà vérifié https://stackoverflow.com/a/42938398/351903 Mais, contrairement à ce qui est mentionné ici, je n'ai pas de /node_modules/fserrors dans ma configuration. De même, 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": "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"
}

Mise à jour

J'ai essayé d'exécuter la commande npm install et d'obtenir le statut 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 nous débarrasser de cet avertissement car il n'est pas pertinent pour notre système d'exploitation.

0 votes

Essayez ceci, ça a marché pour moi stackoverflow.com/a/58178041/4088675 Ajout de fsevents comme optionaDependecy

2 votes

Je ne comprends pas : est-ce un problème de corriger le problème dans les fsevents ? Le site de la bibliothèque indique que cette erreur d'audit n'est pas un bug de la bibliothèque, mais un bug de NPM. Pourquoi ? En supposant que nous ayons 1000 dépendances destinées à être utilisées UNIQUEMENT avec un système d'exploitation spécifique, nous aurons 1000 erreurs d'audit ! Les auteurs de fsevents proposent donc de corriger CHAQUE problème en signalant un bug à NPM. Et si l'OS était construit de manière à ce que tous les bogues de commande soient gérés par le noyau ? AFAIK, c'est une route vers l'enfer.

91voto

a5his Points 1765

fsevents est traité différemment dans mac et les autres systèmes linux. Le système Linux ignore fsevents alors que Mac l'installe. Comme l'indique le message d'erreur ci-dessus fsevents est facultatif et il est ignoré dans le processus d'installation.

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

Plus d'informations

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

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

23 votes

Je viens d'essayer d'exécuter npm install --no-optional pour ne pas être averti pour les fsevents. Mais ça n'a pas marché :(

3 votes

Malheureusement, cela entraîne d'autres problèmes dus à un bug dans npm. Voir github.com/npm/npm/issues/19877#issuecomment-368981968

5 votes

Comme le dit TigerBear, "--no-optional" est une très, très mauvaise idée. Il est généralement possible d'ignorer l'avertissement. Vous pouvez également utiliser npm install -f : github.com/angular/angular/issues/13935

40voto

iweber Points 26
npm i -f

J'aimerais reprendre certains commentaires de l'article suivant ce fil où vous pouvez vous informer sur la question et le problème a été résolu .

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

Parfois

Même si vous le supprimez du package.json, npm i échoue toujours car un autre module l'a comme peer dep.

Alors

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

7 votes

Qu'est-ce que npm i -f faire ?

5 votes

Existe-t-il un fil équivalent à npm i -f ?

1 votes

Según le doc > L'argument -f ou --force force npm à récupérer les ressources distantes même si une copie locale existe sur le disque.

11voto

eLi Points 558

J'ai rencontré le même problème et j'ai essayé toutes les solutions mentionnées ci-dessus et dans github. Certaines ne fonctionnent que dans le dépôt local, lorsque je pousse mon PR dans des dépôts distants avec travic-CI ou Pipelines me donne la même erreur. Finalement, j'ai résolu le problème en utilisant la commande npm ci-dessous.

npm audit fix --force

0 votes

Le problème est que tout le monde n'a pas npm-audit et lorsque j'essaie de l'installer avec npm install npm-audit il échoue radicalement...

0 votes

Cela a fonctionné pour moi à condition que j'aie également installé fsevents en tant que dépendance optionnelle comme décrit par plusieurs réponses ici.

1 votes

npm audit est une commande de npm lui-même, et il n'y a pas de paquet appelé npm-audit .

3voto

Siddhartha Points 759

Faites-le :

npm install --no-optional

Pour plus d'informations à ce sujet, consultez le site : https://github.com/npm/npm/issues/11632

2voto

J'ai eu ce même problème dans Ubuntu.

Résolvez avec ceci.

npm install -g yarn
npm install yarn

yarn install
yarn upgrade

si vous utilisez angular/cli, faites-le aussi

ng update

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