2

package.json 中有os字段

那么,是否 npm/yarn/yarn2/pnpm 先获取依赖的 pacakge.json,然后解析“os”字段(如果存在),只有在 os 匹配时才下载源代码?

或者,他们只是一次下载所有内容(package.json+source)吗?

上下文 我打算发布一个包,其中包含一些特定于操作系统的代码(由 go 编译)。所以我有 3 个已编译的二进制文件(适用于 windows、linux、macOS)。然而,它们中的每一个都有很大的尺寸。因此,我想避免天真地将它们全部包含在一个包中。因此,我正在考虑将它们分开,如@foo/win32, @foo/linux, @foo/darwin。然后让一个名为的包foo依赖于所有这些。最终,用户安装npm install foo而不关心他们的操作系统。这种分离会避免安装不必要的依赖吗?例如,当npm install foo在 linux 上时,我希望 npm 不安装@foo/win32@foo/darwin在引擎盖下。

谢谢。

4

0 回答 0