У меня есть проект npm, который должен быть собран на серверах сборки Mac и Windows.(Это для мобильного приложения Ionic, но я не думаю, что это имеет отношение к моей проблеме.) Одна из наших зависимостей имеет зависимость от fsevents
, которая пропускается npm install
на компьютерах с Windows.Однако, если я запускаю npm list --depth=0
, он возвращает ошибки об отсутствующих зависимостях необязательных зависимостей.
Минимальный package.json для воспроизведения:
{
"dependencies": {
"@ionic/app-scripts": "^3.2.0"
}
}
Затем я запускаю npm install
:
C:\temp\nodetest>npm install
...
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
Обратите внимание, что он пропускает fsevents
, поскольку он не поддерживает ОС Windows.
Теперь я запускаю список npm:
C:\temp\nodetest>npm list --depth=0
C:\temp\nodetest
`-- @ionic/app-scripts@3.2.3
npm ERR! missing: mkdirp@0.5.1, required by node-pre-gyp@0.10.3
npm ERR! missing: minimist@0.0.8, required by mkdirp@0.5.1
npm ERR! missing: minimatch@3.0.4, required by ignore-walk@3.0.1
... (many other errors like this)
Все ошибки связаны сзависимости удаленной необязательной зависимости.Есть ли способ подавить эти ошибки?Я ничего не вижу в документации npm .
Моя конечная цель - проверить, установлены ли все зависимости, и в противном случае выполнить сборку.В настоящее время я использую npm list
, чтобы сделать это.Есть лучший способ сделать это?Мы не хотим запускать npm install
или npm update
для каждой сборки, потому что в прошлом у нас было много неожиданных ошибок.
Я также пробовал npm list --depth=0 --no-optional
(основываясь на этот вопрос ), но не похоже, что --no-optional
команда относится к npm list
.