离线安装 node-gyp

蔡文姬
• 阅读 8514

疫情期间不得已要启用远程办公,公司的 windows 远程桌面有内网 npm 但无法连接外网,环境配置起来非常难受。在配置 node-gyp 的时候花了不少时间,而且网上没有一个清晰的教程,这里整理一下。

仅针对 windows 环境,但其他环境也是类似的。

准备依赖

首先不建议使用 windows-build-tools 这个包。我使用时遇到了几个问题,而且在没网络的环境下,操作也并没有简化很多。反而是 node-gyp 说明里介绍的手动安装更加快捷。

windows 下依赖就两个,Visual Studio Build Tools 和 Python 。Python 版本 node-gyp 要求 2.7/3.5/3.6/3.7 都可以,保险起见建议装 2.7 。

离线安装 Visual Studio Build Tools

网上主要推荐的是 2015、2017 版本的 Build Tools ,但 2019 版本其实包含了前面的内容,node-gyp 说明里让下载的也是最新的 2019 版。

  1. 下载 Visual Studio Build Tools
  2. 打开 CMD 执行以下命令以下载所有需要的内容到本地:
vs_buildtools.exe --layout C:\Users\<你的用户名>\Desktop\BuildTooloffline\cache --add Microsoft.VisualStudio.Workload.VCTools
  1. 将前面指定的缓存文件夹复制到离线的电脑上,执行安装。
  2. 执行下面命令:
npm config set msvs_version 2017

准备 node headers 文件

  1. 下载下面两个文件:

https://nodejs.org/download/release/v12.14.1/node-v12.14.1-headers.tar.gz

https://nodejs.org/download/release/v12.14.1/win-x64/node.lib

  1. 复制到离线机器上,解压 headers.tar.gz
  2. 上一步解压出来的目录中,在 include 文件夹的同级目录新建一个 Release 文件夹
  3. node.lib 复制到 Release 文件夹中。
  4. 执行下面的命令:
npm config set nodedir <include 和 Release 的父文件夹的路径>

现在就能在离线机器上正常使用 node-gyp 了。


同步用,这里继续发

我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:osc_30295615,邀请大家一同入驻:https://www.oschina.net/shari...

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Git命令行基本操作
Gitdownload网址:https://gitscm.com/downloads0\.安装Git网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用GitGUI或者GITK。1\.Git基本配置gitconfig可以配置
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
蔡文姬
蔡文姬
Lv1
白日放歌须纵酒,青春作伴好还乡。
文章
4
粉丝
0
获赞
0