NodeJS npm安装依赖于机器吗?

ejk8hzay  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(171)

npm intall <some-package>期间获取哪些文件?

$ npm install tree-sitter-c-sharp
$ for f in $(find ./node_modules/tree-sitter-c-sharp/ -name \*.node); do file $f; done
< omitted path >/tree_sitter_c_sharp_binding.node: Mach-O 64-bit bundle arm64
  • 这些依赖于机器的文件是否存在于npm注册表中?
  • 还是在我的机器上生成的?
7gcisfzg

7gcisfzg1#

.node文件是二进制插件,通常在npm install时在本地机器上编译。这些二进制插件的源代码实际上是从npm存储库下载的。
在安装过程中,如果包的package.json文件指定了installpostinstall的脚本,npm将运行这些脚本。这些脚本通常包含将源代码编译为二进制插件的命令。这个二进制文件是特定于计算机的,这意味着它是专门为您的计算机体系结构编译的。
但是,有些软件包为特定平台提供了预编译的二进制文件,以加快安装过程。如果您的平台有一个预编译的二进制文件,npm将从存储库中获取这个二进制文件,而不是在本地编译二进制文件
所以,总结一下:

  • .node二进制文件通常是在npm install时在您的机器上创建的。
  • 用于生成这些.node文件的源文件从npm存储库下载。
  • 在某些情况下,可以从npm存储库下载预编译的.node文件,如果它们可用于您的特定平台。

相关问题