网站首页 > 技术文章 正文
环境(2021-04-02):
前言
node-gyp是node C++模块编译的重要工具,目前的安装方式主要是在线安装。但是,离线安装的需要也是不可避免的,下面介绍如何在Windows下离线安装node-gyp
1.安装条件
windows系统:
- Python v3.6, v3.7, v3.8, v3.9
- C/C++编译器, 如 Visual Studio Community 2015
Python3.8.8下载地址: https://www.python.org/ftp/python/3.8.8/python-3.8.8.exe
2.安装NodeJS
https://npm.taobao.org/mirrors/node/v14.16.0/node-v14.16.0-x64.msi
3.下载头文件node-v14.16.0-headers
头文件下载地址:
https://npm.taobao.org/mirrors/node/v14.16.0/node-v14.16.0-headers.tar.gz
https://nodejs.org/dist/v14.16.0/node-v14.16.0-headers.tar.gz
将node-v14.16.0-headers.tar.gz解压到%USERPROFILE%/AppData/Local/node-gyp/Cache,并重命名为14.16.0
# 解压头文件
$ tar -xzf node-v14.16.0-headers.tar.gz -C %USERPROFILE%/AppData/Local/node-gyp/Cache
# 修改文件夹名称为v14.16.0
$ rename node-v14.16.0 14.16.0
4. 下载动态库node.lib
- win-64
https://npm.taobao.org/mirrors/node/v14.16.0/win-x64/node.lib
https://nodejs.org/dist/v14.16.0/win-x64/node.lib
64位的node.lib放到%USERPROFILE%/AppData/Local/node-gyp/Cache/14.16.0/x64
注意:由于安装的是64位node,所以只下载64位即可
5. 添加node-gyp对应的installVersion
node-gyp编译时会检测头文件和库文件的installVersion的版本,如果头文件和库文件的installVersion小于node-gyp的installVersion,则会重新下载安装头文件和库文件。
- 查看node-gyp的installVersion
%USERPROFILE%/AppData/Roaming/npm/node_modules/node-gyp/package.json
可以看到node-gyp的installVersion是9
{
"_from": "node-gyp",
"_id": "node-gyp@7.1.2",
...
"installVersion": 9,
...
"version": "7.1.2"
}
- 头文件同级目录新建文件installVersion内容为9
cd %USERPROFILE%/AppData/Local/node-gyp/Cache/14.16.0
echo 9 installVersion
目录结构如下:
$ C:
$ cd %USERPROFILE%/AppData/Local/node-gyp/Cache/14.16.0
$ tree
.
+--- include
| +--- node
| | +--- node_api.h
| | +--- ...
+--- installVersion
+--- x64
| +--- node.lib
6.安装node-gyp
下载地址: https://github.com/nodejs/node-gyp/archive/v7.1.2.tar.gz
将node-gyp-7.1.2.tar.gz解压到 %USERPROFILE%/AppData/Roaming/npm/node_modules(NodeJS安装路径),并重命名为node-gyp
$ tar -xzf node-gyp-7.1.2.tar.gz -C %USERPROFILE%/AppData/Roaming/npm/node_modules
$ rename node-gyp-7.1.2 node-gyp
安装必要node_modules(在线安装好拷贝到离线环境)
$ cd node-gyp
$ npm install
验证
$ cd bin
$ node %USERPROFILE%/AppData/Roaming/npm/node_modules/node-gyp/bin/node-gyp.js -v
v7.1.2
node-gyp命令文件
在%USERPROFILE%/AppData/Roaming/npm建立node-gyp.cmd文件,用于直接使用node-gyp命令。也就是上一步的验证可以使用node-gyp -v即可。
- node-gyp.cmd
@ECHO off
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
"%_prog%" "%dp0%\node_modules\node-gyp\bin\node-gyp.js" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b
猜你喜欢
- 2024-09-29 Hexo历险记之二多系统安装Node(小人历险记森林深处电脑版免安装)
- 2024-09-29 Win7环境下成功安装Nodejs18.16.1
- 2024-09-29 个人云笔记系统搭建(针对window操作系统)
- 2024-09-29 Npm 安装提示 EUNSUPPORTEDPROTOCOL 错误
- 2024-09-29 一个优雅的将NodeJS项目打包成跨平台可执行文件的神器——pkg
- 2024-09-29 Skywalking的编译打包(skywalking java)
- 2024-09-29 windows 安装 node-canvas(windows安装node环境)
- 2024-09-29 Gatlab 10.4.6中挖矿病毒处理与升级过程记录
- 2024-09-29 json - server:mock接口工具使用(mock-server.js)
- 2024-09-29 用一次就会爱上的cli工具开发(cli 工具)
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 530℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 492℃MySQL service启动脚本浅析(r12笔记第59天)
- 472℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 469℃启用MySQL查询缓存(mysql8.0查询缓存)
- 450℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 429℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 426℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)