node-gyp编译问题
我们经常使用 npm i xxx -S or yarn add xxx 甚至于使用脚手架会出现以下问题:
备注:以下是我使用umi脚手架创建AntD项目时出现的错误
如果你从npm拉下来的依赖是编译完成的文件,那么可以正常运行。但很多NodeJS Npm依赖是跨平台的,也就是说要不你去下载相关依赖在各个平台编译完成的文件,要不你自行编译。
如果此时你npm i xxx -S or yarn add xxx 出现上面的错误,那么说明你拉下了源码,此时需要你本机有node-gyp环境来将其编译为适合当前平台运行的文件。
node-gyp环境说明:https://github.com/nodejs/node-gyp/
此文章针对官方及我所遇到的坑补充,首先node-gyp需要Ptthon及C/C++编译工具,其次,我的平台是Windows 10 2004 x64。
1.npm 全局安装node-gyp
npm install -g node-gyp
2.安装Python
1。使用官方安装包安装,我安装的是Python2【2.7.18,Python2最后一版】,我不做Python开发,所以没有Python3,开发用到的Python2比较多,例如React Native。【推荐】
https://www.python.org/downloads/release/python-2718/
需要注意的是安装时候勾选
2.使用Windows应用商店安装
3.安装C/C++编译工具。
1.如果你是.Net开发者,或者说你是用Visual Studio开发的开发人员。按照以下步骤进行设置
1.指定VS版本
npm config set msvs_version 2019
2.如果你是VS2017及以下版本,此步骤可省略
因为VS2019的MSBuild.exe文件和之前版本的所在位置不同,因此,我们需要亲自指定【注意你的VS版本,可能与我的路径并不相同】
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
3.安装Visual Studio C++ 相应的编译工具
1、如果你是Visual Studio C++ 开发者,我想此处的依赖可能你已安装。【如果你已经勾选“使用C++的桌面开发”】
2.如果你不是C++开发者(例如我),你只需要勾选以下两项即可。
2.如果你只是纯前端开发者,只需要安装C/C++编译器工具即可。
使用Windows的PowerShell或CMD.exe(以管理员身份运行)通过安装Windows-Build-tools来获取所有必需的工具和配置。
npm install --global --production windows-build-tools
4.最好再给npm加个速,防止老是编译。
npm install -g mirror-config-china --registry=https://registry.npmmirror.com
https://registry.npmmirror.com