node-gpy工具说明

本篇主要记录下node-gyp工具的用法。

 同系列参考文章

Electron调用C++函数-CSDN博客

node-gpy工具说明-CSDN博客

配置文件binding.gpy说明-CSDN博客

Electorn-C++代码示例-CSDN博客

node-gpy说明

node-gyp是一个用 Node.js 编写的跨平台命令行工具,用于编译 Node.js 的原生插件模块。它包含 gyp-next项目的供应商副本,该项目之前由 Chromium 团队使用,并扩展为支持 Node.js 原生插件的开发。请注意,node-gyp 不用于构建 Node.js 本身。

node-gpy安装

安装node-gyp

npm install -g node-gyp

安装其他必备工具

unix平台
  • 受支持的python版本
  • make
  • C/C++编译工具
macOS平台
  • 受支持的python版本
  • Xcode Command Line Tools(将安装clang、、clang++和make)
# 安装Xcode Command Line Tools的命令
xcode-select --install
windows平台

使用使用Chocolatey安装工具

choco install python visualstudio2022-workload-vctools -y

配置 Python 依赖

如果安装了多个版本的 Python,则可以 node-gyp通过以下方式之一确定应使用的版本:

  1. 通过设置--python命令行选项,例如:
node-gyp  --python /path/to/executable/python
  1. 如果通过npm调用node-gyp,并且安装了多个版本的Python,那么可以设置npm_config_python的环境变量设置为适当的路径:
export npm_config_python=/path/to/executable/python

或者在 Windows 上:

py --list-paths  # To see the installed Python versions
set npm_config_python=C:\path\to\python.exe  # CMD
$Env:npm_config_python="C:\path\to\python.exe"  # PowerShell
  1. 如果 PYTHON 环境变量设置为 Python 可执行文件的路径,则将使用该版本(如果它是受支持的版本)。
  2. 如果 NODE_GYP_FORCE_PYTHON 环境变量设置为 Python 可执行文件的路径,则将使用它将代替任何其他配置或内置的 Python 搜索路径。如果不是兼容版本,则不会进行进一步搜索。

如何使用node-gyp

  • cd my_node_addon
  • node-gyp configure
  • node-gyp build
# 编译你的原生插件,首先转到其根目录:
cd my_node_addon

# 生成适合当前平台的项目构建文件
# 目录中将有一个Makefile(在 Unix 平台上) 或一个vcxproj文件 
# (在 Windows 上) build/
node-gyp configure
# Visual C++ Build Tools 2015 的自动检测失败,
# 因此--msvs_version=2015 需要添加
#(按照上面配置通过 npm 运行时不需要)
# node-gyp configure --msvs_version=2015

# 编译为.node文件
# 编译后的绑定最终位于build/Debug/或build/Release/中,
# 具体取决于构建模式。
node-gyp build

命令

node-gyp响应以下命令:

命令

描述

help

显示帮助对话框

build

调用make/msbuild.exe并构建原生插件

clean

build如果目录存在则删除

configure

为当前平台生成项目构建文件

rebuild

clean后运行configurebuild

install

安装指定版本的 Node.js 头文件

list

列出当前安装的 Node.js 头文件版本

remove

删除指定版本的 Node.js 头文件

命令选项

node-gyp接受以下命令选项:

命令

描述

-j n,--jobs n

并行运行make。该值max将使用所有可用的 CPU 核心

--target=v6.2.1

要构建的 Node.js 版本(默认为process.version)

--silly,--loglevel=silly

将所有进度记录到控制台

--verbose,--loglevel=verbose

将大部分进度记录到控制台

--silent,--loglevel=silent

不要将任何内容打印到控制台

debug,--debug

进行调试构建(默认为Release)

--release,--no-debug

进行发布构建

-C $dir,--directory=$dir

在不同的目录中运行命令

--make=$make

覆盖make命令(例如gmake)

--thin=yes

启用精简静态库

--arch=$arch

设置目标架构(例如 ia32)

--tarball=$path

从本地 tarball 获取标头

--devdir=$path

SDK下载目录(默认为OS缓存目录)

--ensure

如果已经存在,不要重新安装标头

--dist-url=$url

从自定义 URL 下载标头 tarball

--proxy=$url

设置 HTTP(S) 代理以下载 header tarball

--noproxy=$urls

设置 URL 以在下载 header tarball 时忽略代理

--cafile=$cafile

覆盖默认 CA 链(下载 tarball)

--nodedir=$path

设置节点源代码的路径

--python=$path

设置 Python 二进制文件的路径

--msvs_version=$version

设置 Visual Studio 版本(仅限 Windows)

--solution=$solution

设置 Visual Studio 解决方案版本(仅限 Windows)

--force-process-config

强制使用运行时的process.config对象来生成config.gypi文件

参考文章

官方node-gpy文档

你可能感兴趣的:(工作调研,node.js)