前言
在通过 node-gyp 打包 C++ 集成的 node 插件时,遇到了挺多坑点,网上大部分资料都是针对低版本的 node-gyp 进行处理,时效性较差,因此通过书写文章的形式整理自己踩过的坑点。
node-gyp 是什么?
node-gyp 是一个可以编译 node 插件的工具,在使用 node-gyp 前需要安装 python 环境和 C++ 环境
如何安装
1 安装 windows-build-tools
查阅了网上大部分文章,windows-build-tools 这个 npm 包可以帮助我们一键安装 node-gyp 所需要的 python 环境和 C++ 环境。
但 windows-build-tools npm 包已经不维护了。如需要继续使用的话,我们可以将 python2.7 替换成 python3, 在安装 C++ 环境
具体步骤如下:
-
1 采用管理员模式开启 CMD 或者 powerShell, 安装 windows-build-tools
npm install --global --production windows-build-tools
-
2 如果遇到了 successfully installed python 卡主
不要慌,疑似 window-build-tools 自带的bug,可查看相关issue链接
解决方案:
-
1 打开资源管理器(左下角搜索-资源管理器或者直接window+E),在路径处输入
%temp%
-
2 在
%temp%
文件夹中找到最新的文件名类似于dd_installer_20211126145101.log
的文件,查看此文件,确保日志中输出了Closing the installer with exit code 0
-
3 在
%temp%
目录下创建一个名为dd_client_.log
的文件 -
4 编辑创建的文件,加入一行
Closing installer. Return code: 3010.
然后保存。 -
5 回到执行安装命令的窗口,会继续安装windows-build-tools的步骤
-
2 安装 python3
网上部分文章说 node-gyp 应该用 python 版本 2.7 版本,可能是因为时效性的问题,目前 python2 已经不在维护了,并且 node-gyp 在官方文档上也说明应该用 python3。
-
1 在 C 盘 Users 目录下的 .windows-build-tools, 找到python相关的 msi 文件, 打开并卸载掉 python2, 因为 node-gyp@9 版本对应是 python3 的版本
-
2 安装 python3 环境并配置环境变量 传送门
3 安装 C++ 环境
-
点击 vs_BuildTools.exe
-
安装环境的方式有 2 种:
- 方案1: Install Visual C++ Build Environment Visual Studio Build Tools
- 方案2: 使用 visual studio community 安装c++桌面开发工具(我是用的这种方式)
4 安装 node-gyp
npm install -g node-gyp
常见问题的解决
1 python not found - had to configure it manually in npm
如果小伙伴已经安装了 python, 查看版本是否是 python3 的版本并且设置了环境变量
2 如何打包 C++ 集成的插件
npm config set msvs_version 2017
node-gyp configure
node-gyp build