Hay un campo os en package.json.
Entonces, ¿npm/yarn/yarn2/pnpm busca primero el pacakge.json de la dependencia, luego analiza el campo "os" (si existe) y descarga el código fuente solo si os coincide?
¿O simplemente descargan todo el contenido (paquete.json+fuente) de una sola vez?
Contexto Estoy planeando publicar un paquete que incluye algún código específico del sistema operativo (compilado por go). Así que tengo 3 binarios compilados (para Windows, Linux, macOS). Sin embargo, cada uno de ellos tiene un gran tamaño. Así quiero evitar ingenuamente incluirlos todos en un solo paquete. Por lo tanto, estoy pensando en separarlos como @foo/win32 , @foo/linux , @foo/darwin . Luego dejar que un paquete llamado foo dependa de todos ellos. Y eventualmente, los usuarios instalan npm install foo sin preocuparse por su sistema operativo. ¿Evitará esta separación instalar una dependencia innecesaria? Por ejemplo, cuando npm install foo en Linux, quiero que npm no instale @foo/win32 , @foo/darwin debajo del capó.
Gracias.