npm ПОПЕРЕДЖЕННЯ notsup ПОСЛІДЧЕННЯ ОПЦІЙНОЇ ЗАВДАННЯ: Непідтримувана платформа для fsevents@1.0.14


113

Я намагаюся запустити цей проект https://github.com/Soundnode/soundnode-app після оновлення моєї мінімальної версії до 3.10.9, я отримую цю помилку

npm ЗАПЕРЕДЖАЙТЕ додаткові додаткові додаткові функції: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: непідтримувана платформа: непідтримувана os ":" darwin "," arch ":" any "} (поточний: {" os ":" win32 "," arch ":" ia32 "})

моя конфігурація - Node v - 4.4.2 npm v- 3.10.9 im, що працює на 32-бітних ОС Windows


1
Для мене це не здається помилкою - незважаючи на це, у вас виникли проблеми із запуском коду? npm WARNсаме це - попередження, на яке, можливо, варто звернути увагу, але насправді нічого не порушило.
Aurora0001

2
І саме це попередження говорить лише про те, що додаткова залежність не встановлена, оскільки ваша платформа не відповідає її вимогам. У цьому випадку він шукає дарвіна, і ви перебуваєте на win32
Дейв V

це грубий проект, після запуску цієї команди "npm install -g grunt-cli", я намагаюся запустити npm install, коли я отримаю це попередження,
Aishwary Tiwari

1
@AishwaryTiwari, ви насправді отримали помилку чи код не працює? Попередження навряд чи будуть справжньою проблемою, оскільки (як йдеться у повідомленні про помилку) воно пропустило необов'язкову залежність.
Aurora0001

1
Існує запит на виклик, який вирішує проблему: github.com/npm/npm/pull/19198 Ви можете підписатися на цей запит на виклик , тому ви отримаєте оновлення, коли він буде закритий.
RiZKiT

Відповіді:


150

Це попередження, а не помилка. Він виникає тому, що fseventsє необов'язковою залежністю, використовується лише тоді, коли проект виконується в середовищі macOS (пакет забезпечує "Нативний доступ до Mac OS-X FSEvents").

А оскільки ви запускаєте свій проект у Windows, fseventsпропускається як нерелевантне.

Тут є PR, щоб виправити цю поведінку: https://github.com/npm/cli/pull/169


35
Чи не те, що є необов’язковим і залежним від себе суперечить?
Martijn Burger

7
Це більше теоретичне питання. Може, conditional dependencyбуло б краще? Називання важко. Напевно, було непросто знайти гарне ім’я для цієї справи, зберігаючи його лаконічно.
piotr.d

10
npm install --no-необов’язково
suiwenfeng

5
Я повністю згоден, @DemPilafian. Таким чином я відредагував свою оригінальну відповідь і видалив "лише". Я особисто ставлюся до попереджень як до помилок, але в цьому випадку, IMHO, це не слід реєструвати як попередження, а, скоріше, інформацію, оскільки в середовищі Windows ви нічого не можете зробити, щоб попередження пройшло.
piotr.d

23
Гарна відповідь, тепер як я її позбудусь?
TetraDev

32

Це все ще залишається проблемою, через що встановлення пакетів припиняється з попередженнями про те, що додаткові пакети не встановлюються через "Непідтримувану платформу".

Проблема пов'язана з "скороченням" або package-lock.jsonяке виникає після кожного виконання менеджера пакунків. Наступні спроби не спрацьовують, оскільки на цей файл посилається замість package.json.

Додавання цих параметрів до npm installкоманди повинно дозволяти пакетам знову встановлюватися.

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

Повна команда виглядає так:

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

nJoy!


1
Чи ризиковано встановити --no-optional-flag для коду, який працює лише для позбавлення від попередження? Чому він не встановлений за замовчуванням?
cederlof

5
Це не може бути рішенням, оскільки використання пакета-lock.json - це хороша річ, і це рішення пропонує протилежне.
ismailarilik

@ismailarilik Це рішення дозволяє мені встановлювати пакети, щоб я міг продовжувати свою роботу.
nickl-

"- необов'язково" - це дуже, дуже погана ідея. Зазвичай це нормально ігнорувати попередження. Ви також можете використовувати npm install -f: github.com/angular/angular/isissue/13935
FoggyDay

12

Використовуючи параметр --force:

npm i -f

2
Я змусив установку один раз за допомогою цієї команди, а тепер, коли я запускаю, npm installя не маю жодних попереджень дякую!
Алленіле

1
Я отримав деякі помилки під час виконання цієї команди, але після повторного запуску npm встановити попередження не було! дякую, сер
ccoutinho

Отже, ви встановлюєте у своєму проекті ті марні залежності (у машині з Windows), щоб отримати попередження? Якщо так, я сподіваюся, що тремтіння дерев позбудеться їх у виробничих будівлях. Мені подобається подолання. Це позбавляється від пов'язаних з яблуками матеріалів на моєму екрані.
Хосеп Алакід
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.