在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注册表中?
- 还是在我的机器上生成的?
1条答案
按热度按时间7gcisfzg1#
.node
文件是二进制插件,通常在npm install
时在本地机器上编译。这些二进制插件的源代码实际上是从npm存储库下载的。在安装过程中,如果包的
package.json
文件指定了install
或postinstall
的脚本,npm将运行这些脚本。这些脚本通常包含将源代码编译为二进制插件的命令。这个二进制文件是特定于计算机的,这意味着它是专门为您的计算机体系结构编译的。但是,有些软件包为特定平台提供了预编译的二进制文件,以加快安装过程。如果您的平台有一个预编译的二进制文件,npm将从存储库中获取这个二进制文件,而不是在本地编译二进制文件
所以,总结一下:
.node
二进制文件通常是在npm install
时在您的机器上创建的。.node
文件的源文件从npm存储库下载。.node
文件,如果它们可用于您的特定平台。