npm WARN notsup ПРОПУСК ДОПОЛНИТЕЛЬНОЙ ЗАВИСИМОСТИ: неподдерживаемая платформа для fsevents@1.0.14

113

Я пытаюсь запустить этот проект https://github.com/Soundnode/soundnode-app после обновления моей минимальной версии до 3.10.9, я получаю эту ошибку

npm WARN optional ПРОПУСК ДОПОЛНИТЕЛЬНОЙ ЗАВИСИМОСТИ: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm WARN notsup ПРОПУСК ДОПОЛНИТЕЛЬНАЯ ЗАВИСИМОСТЬ: неподдерживаемая платформа для fsevents@1.0.14 os ":" darwin "," arch ":" any "} (current: {" os ":" win32 "," arch ":" ia32 "})

моя конфигурация - Node v - 4.4.2 npm v- 3.10.9 я работаю на 32-битной ОС Windows

Айшвари Тивари
источник
1
Для меня это не похоже на ошибку - несмотря на это, у вас проблемы с запуском кода? npm WARNэто просто предупреждение, на которое стоит обратить внимание, но на самом деле ничего не сломало.
Aurora0001,
2
И это конкретное предупреждение просто сообщает вам, что дополнительная зависимость не была установлена, потому что ваша платформа не соответствовала ее требованиям. В данном случае он ищет Дарвина, а вы находитесь на win32
Дэйв Ви,
это грубый проект, после выполнения этой команды «npm install -g grunt-cli» я пытаюсь запустить npm install, когда получаю это предупреждение,
Айшвари Тивари
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

piotr.d
источник
35
Разве что-то необязательное и зависимое не противоречит самому себе?
Martijn Burger
7
Это скорее теоретический вопрос. Может conditional dependencyлучше будет? Именование сложно. Думаю, было нелегко найти хорошее название для этого дела, оставаясь при этом лаконичным.
piotr.d
10
npm install --no-optional
suiwenfeng
5
Полностью согласен, @DemPilafian. Таким образом, я отредактировал свой исходный ответ и удалил «только». Я лично отношусь к предупреждениям как к ошибкам, но в этом случае, IMHO, это не должно регистрироваться как предупреждение, а скорее как информация, поскольку в среде Windows вы не можете ничего сделать, чтобы предупреждение исчезло.
piotr.d 06
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Опасно ли устанавливать флаг -флаг для кода, который работает только для того, чтобы избавиться от предупреждения? Почему он не установлен по умолчанию?
cederlof
5
Это не может быть решением, поскольку использование package-lock.json - это хорошо, и это решение предполагает обратное.
ismailarilik
@ismailarilik Это решение позволяет мне устанавливать пакеты, чтобы я мог продолжать свою работу.
nickl- 05
"--no-optional" - действительно плохая идея. Обычно это нормально игнорировать предупреждение. Вы также можете использовать npm install -f: github.com/angular/angular/issues/13935
FoggyDay,
13

Используя параметр --force:

npm i -f
JFs
источник
2
Я однажды принудительно установил эту команду, и теперь, когда я запускаю, npm installу меня нет предупреждений, спасибо!
Allenile
1
У меня возникли ошибки при выполнении этой команды, но после повторного запуска npm install предупреждения исчезли! Спасибо, сэр
ccoutinho
Итак, вы устанавливаете в свой проект эти бесполезные зависимости (на машине с Windows), чтобы избавиться от предупреждений? Если так, то я очень надеюсь избавиться от них в производственном здании. Мне нравится обходной путь. Он избавляется от всего, что связано с яблоками, на моем экране.
Josep Alacid