写成日期:2021/10/08 10:00 AM
原文地址:https://github.com/nodejs/node-gyp
我是一个跨平台的命令行工具,在Node.js中使用,用于为Node.js编译原生插件模块。我包含了一个gyp-next的分叉(gyp-next之前由Chromium在使用),扩展用于支持Node.js原生插件的开发。
吭吭,我不是用于构建Node.js自身的工具。
我支持Node.js的很多很多版本,从0.8到4、5、6...,嗯嗯截止目前我都支持,放心使用。
- 在已经支持的任意平台上,使用同一种构建命令。
- 兼容Node.js的不同版本
可以直接用 npm 进行安装:
根据我将运行的操作系统,还需要安装以下东西:
- Python v3.6+
- make
- C/C++编译工具链,如GCC
如果系统升到了macOS Catalina(10.15+),需要单独看 macOS_Catalina.md。
- Python v3.6+
- Xcode
- 需要安装XCode命令行工具,
- 如果已经安装了完整的Xcode,要通过菜单 Xcode -> Open Developer Tool -> More Developer Tools,进行clang、clang++、make的安装
TODO
TODO
第一步,进到需要编译的原生插件目录下,
第二步,生成一个适合当前系统平台的项目编译文件,。在VC++2015上自动检测失败,需要手动添加指定,。配置步骤会在当前目录找到building.gyp文件,如何配置它见下面。
现在,build目录下会包含一个Makefile(在Unix上)或一个vcxproj(在Windows上)。
第三步,构建,
接下来会生成 .node 的绑定文件,编译后的绑定文件在 build/Debug 或 build/Release/ 中,这取决于构建的模式。Debug使用 --debug参数,重新进行 configure、build/rebuild。
现在,你可以通过 require 这个 .node 文件来运行你的测试了!
它描述了待编译模块的配置,类JSON格式,它与package.json一块儿放在包的根目录下。
适用于构建Node.js插件的gyp示例:
讯享网
docs目录下包含一些额外的文档,描述了一些关于node-gyp的特定主题,可能对你进行安装或构建产生帮助。
一些非官方的写的不错的教程:
- "Going Native" a nodeschool.io tutorial
- "Hello World" node addon example
- gyp user documentation
- gyp input format reference
- "binding.gyp" files out in the wild wiki page
- help,显示帮助文档
- build,使用make/msbuild.exe构建原生插件
- clean,移除build文件夹
- configure,生成适配当前平台的项目构建文件
- rebuild,执行clean、configure、build
- install,安装给定版本的Node.js头文件
- list,列出当前安装的Node.js头文件的版本
- remove,移除给定版本的Node.js头文件
- ,并行运行make,取决于最大系统核心数
- ,指定Node.js版本,默认使用process.version
- ,打印所有进度到控制台
- ,打印大多数进度到控制台
- ,不打印任何东西
- ,使用Debug构建,默认是Release
- ,在不同的文件夹中跑命令
- ,重写make命令,比如gmake
- ,使用精简静态库
- ,设置目标架构,如 ia32
- ,从本地tarball获取头文件
- ,SDK下载目录,默认使用OS缓存目录
- ,如果头文件已经存在则不重新安装
- ,从自定义URL中下载头文件
- ,设置HTTP(S)代理,用于下载header tarball
- ,设置下载header tarball时需要忽略代理的URLs
- ,重写默认的CA chain,用于下载header tarball
- ,设置node源码的路径
- ,设置Python二进制的路径
- ,设置Visual Studio版本(Windows专用)
- ,设置Visual Studio Solution版本(Windows专用)
举例,将 devdir 设置为 /tmp/.gyp,
或
举例,将 devdir 设置为 /tmp/.gyp,
MIT

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146912.html