node-gyp编译问题

Posted fanqisoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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应用商店安装

技术图片

 

2.安装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 Studio2019EnterpriseMSBuildCurrentBinMSBuild.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

 

以上是关于node-gyp编译问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows 使用 node-gyp

使用 node-gyp 交叉编译具有本机绑定的节点模块

node-gyp 中应用gcov来测试代码覆盖率

node-gyp 针对错误的 NODE_MODULE_VERSION 进行编译

安装了vs2019 编译node-sass node-gyp 找不到编译器的解决方法

使用 Visual Studio 2017 或 2019 编译 node-gyp C++ 插件