Текст и данные · Инструкция
Как задать os и cpu в package.json
Для нативного или платформенно-зависимого пакета лучше явно объявить ограничения, чем позволить установку в среде, где о
Короткий ответ
Используйте поля `os` и `cpu`, если пакет действительно поддерживает только определённые платформы; значения сопоставляются с `process.platform` и `process.arch`.
Что делать
- 1. Определите реальные платформы: Проверьте, какие OS и архитектуры вы тестируете и поддерживаете.
- 2. Добавьте `os`: Например, разрешите нужные значения platform; отрицательные элементы начинаются с `!`.
- 3. Добавьте `cpu`: Перечислите поддерживаемые architecture по значениям `process.arch`.
- 4. Проверьте CI: Прогоните установку хотя бы на одной разрешённой и одной запрещённой комбинации.
Пример ограничений
Поля вроде `"os": ["linux", "darwin"]` и `"cpu": ["x64", "arm64"]` имеют смысл только при реальной платформенной зависимости.
Важно
Не используйте os/cpu как замену runtime feature detection, если пакет может нормально работать на более широком наборе систем.
Как понять, что всё сработало
- Установка проходит на разрешённой комбинации `process.platform/process.arch`.
- На запрещённой комбинации npm отклоняет package по `os/cpu`, если это и было целью ограничения.
Что учитывать
Поля вроде `"os": ["linux", "darwin"]` и `"cpu": ["x64", "arm64"]` имеют смысл только при реальной платформенной зависимости.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. package.json). Пример и формулировки — редакция N1RO на 2026-09-18.