Як вирішити попередження про встановлення npm fsevents в ОС, що не є MAC?


115

Наступне попередження викидається за npm installкомандою -

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

Попередження, мабуть, спричиняє нашу роботу Дженкінса невдалою, тому ми просто намагаємось позбутися того самого.

Я вже перевірив це https://stackoverflow.com/a/42938398/351903 Але, на відміну від того, що там згадується, у мене немає ніяких / node_modules / fserrors у моїй установці. Крім того, мій package.json не містить помилок. Далі мій пакет.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"
  }
}

Я бачу fsevents у package.json з реакційних скриптів (який визначається під devDependencies мого package.json) у 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"
}

Оновлення

Я спробував запустити команду встановлення npm і отримати статус виходу з попередньої команди. Він показав 0, що означає успіх, незважаючи на попередження. Отже, схоже, робота Дженкінса через це не повинна застрягти. Однак ми все ще намагаємось знайти спосіб позбутися цього попередження, оскільки воно не стосується нашої ОС.


Спробуйте, це працює для мене stackoverflow.com/a/58178041/4088675 Додавання fsevents як optionaDependecy
Oluwaloni Річард

Відповіді:


71

fseventsпо-різному розглядається в mac та інших системах Linux. Система Linux ігнорує, fseventsтоді як mac її встановлює. Як зазначено у вищевказаному повідомленні про помилку, fseventsце необов’язково, і воно пропускається в процесі встановлення.

Ви можете запустити npm install --no-optionalкоманду в системі Linux, щоб уникнути наведеного вище попередження.

Додаткова інформація

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

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


16
Я просто спробував запустити npm install --no-optional, щоб avoir не був попереджений про fsevents. Не спрацювало :(
Деунц,

1
на жаль, це призводить до інших проблем через помилку в npm. Дивіться github.com/npm/npm/issues/19877#issuecomment-368981968
TigerBear

3
Як каже TigerBear, "--no-optional" - це дійсно, дуже погана ідея. Як правило, нормально ігнорувати попередження. Ви також можете використовувати npm install -f: github.com/angular/angular/issues/13935
FoggyDay

4
Як я можу просто видалити його як додаткову залежність, щоб не показувати попередження?
Аарон Франке,

Не працював, як рекламували для мене. Ubuntu 19.04 січня 2020
Майкл Деррант

37
npm i -f

Я хотів би розмістити кілька коментарів із цієї теми, де ви зможете ознайомитись із проблемою та вирішити проблему .

Це саме проблема Angular. Поточний package.json вимагає fsevent як необов’язковіDependencies, а devDependencies. Це може бути проблемою для користувачів, які не є OSX.

Іноді

Навіть якщо ви видалите його з package.json npm, я все одно зазнаю невдачі, оскільки інший модуль має його як одноранговий деп.

Тому

якщо npm-shrinkwrap.json все ще є, вилучіть його або спробуйте npm i -f


2
Що робить npm i -f?
Super Jade

2
Чи існує пряжа, еквівалентна npm i -f?
Super Jade

37

Якщо ви хочете приховати це попередження, вам просто потрібно встановити fsevents як додаткову залежність. Просто виконайте:

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

..І попереджати більше не буде турбувати.


9
Це не доступно для користувачів, які не є Mac.
Метью

3
зазнає невдачі, не
немак

2
ОП заявив: "... намагаючись знайти спосіб позбутися цього попередження, оскільки воно не стосується нашої ОС", тому запропоноване вами рішення не працює.
маттіку

1
Ви додали опцію "-f"?
Хуніньо Круз,

11

package.jsonпідраховує optionalDependenciesключем. NPM щодо факультативних залежностей .

Ви можете додати fseventsдо цього об'єкта, і якщо ви виявите, що встановлюєте пакети на іншій платформі, ніж MacOS, fseventsце буде пропущено або пряжею, або npm .

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

У журналі встановлення ви знайдете таке повідомлення:

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.

Сподіваюся, це допоможе!


Якщо вам не подобається возитися з JSON, запустіть цю команду: npm i fsevents @ latest -f --save-optional, яка додасть цей JSON у файл для вас.
Еріх Верманн

7

Я знайшов ту саму проблему, і я спробував усі рішення, згадані вище, і в github. Деякі роботи працюють лише в локальному сховищі, коли я натискаю свій PR у віддалених сховищах за допомогою travic-CI або Pipelines, я повертаю ту саму помилку. Нарешті, я виправив це за допомогою команди npm нижче.

npm audit fix --force


Проблема в тому, що є не у всіх, npm-auditі коли я намагаюся встановити його з npm install npm-auditцим, це не вдається різко ...
Серж Саган

Це працювало для мене за умови, що я також встановив fsevents як додаткову залежність, як описано в декількох відповідях тут.
Сафа Алай

3

У мене теж була та сама проблема, хоча я використовую MacOS. Питання в чомусь помилка. Я вирішив цю проблему, неодноразово запускаючи команди,

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

Одного разу це не спрацювало, але коли я неодноразово очищав кеш і після видалення npm, перевстановлення npm, помилка вийшла. Я використовую Angular 8, і ця проблема поширена



1

Я використовую, Angular CLI: 8.1.2 Вузол: 12.14.1 ОС: win32 x64

Дивно, але це мені допомогло

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

1
Цей кеш-пам’ять npm clean --force в підсумку допоміг мені не зовсім у тій самій справі, але в іншій справі щодо залежностей fsevents.
Джош

1

Замість використання --no-optionalкожного разу, ми можемо просто додати його до npm або конфігурації пряжі.

Для Yarn існує типова конфігурація за замовчуванням, тому ми можемо просто відредагувати це:

yarn config set ignore-optional true

Для npm конфігурація за замовчуванням не встановлена, тому ми можемо створити її:

npm config set ignore-optional true

0

Я отримав ту ж помилку. У моєму випадку я використовував відображений привід для редагування коду з другого комп’ютера, на якому працював Linux. Не впевнений, чому саме gulp-watch покладається на сумісність операційної системи перед встановленням (я вважаю, це пов’язано з цілями безпеки). По суті, помилка перевіряє вашу операційну систему та операційну систему, що викликає модуль вузла, у моєму випадку дві операційні системи були не однаковими, тому вона спричинила помилку. Що з вигляду вашої помилки таке саме, як і моє.

Помилка

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

Як я це виправив?

Я ввійшов безпосередньо в комп'ютер Linux і побіг

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

Потім повернувся до мого середовища кодування, і після цього все було добре.

Сподіваюся, це допоможе!


використовувати це npm i fsevents@latest -f --save-optional
RAVI BANGKIT NUR ZIKRILLAH

-1

Так, це працює, коли з командою npm install --no-optional
Використання середовища:

  • iTerm2
  • macos вхід до мого vm ubuntu16 LTS.

-1

У мене виникла ця помилка, система Linux (Ubuntu), і це може статися під час запуску:

npm встановити

1) Якщо проекту немає на вашому локальному диску / комп’ютері, скопіюйте його на свій комп’ютер і повторіть спробу. Отже, ви отримуєте дозвіл на доступ до папки (Просто переконайтеся, що у вас є дозвіл на доступ).

2) Якщо ви все одно отримуєте попередження або помилки, запустіть:

виправлення перевірки npm

Це дозволить усунути уразливості у ваших залежностях і допоможе вам усунути вразливість, надаючи прості для запуску команди npm та рекомендації щодо подальшого усунення несправностей.

Сподіваюся, це допоможе!


-1

Перейти на PNPM: https://pnpm.js.org/

fsevents попередження пішли (на Linux).

Навіть остання пряжа (2.x) показує попередження.


Відсутність попередження тут, ймовірно, пов’язана з тим, що pnpm кешує залежності. Напевно, у вас все ще було попередження, але наступне використання просто створювало б символічні посилання, пропускаючи інсталяцію, яка видає попередження. Якби ви очистили кеш pnpm, швидше за все, ви отримаєте попередження ще раз. У будь-якому випадку, це варіант "вилікувати хворобу вбивством пацієнта", а не рішення.
erich2k8

@ erich2k8 Ви помилково. Я очистив кеш pnpm, і попередження не відображається під час встановлення pnpm.
KTCO

-2

Якщо хтось отримає цю помилку для встановлення іонної кордови. просто використовуйте цей код npm install --no-optionalу вашому cmd. А потім запустіть цей кодnpm install -g ionic@latest cordova


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.