无法为 Node 构建原生包

问题描述 投票:0回答:2

我正在运行一个 Electron 应用程序,它有一些本机模块,其中一个模块是一个名为

better-sqlite3
的包。我运行 Yarn,Yarn 能够毫无问题地安装所有软件包,但当进入构建步骤时,一切都会崩溃。

我得到了一堆不同的

node-gyp
错误输出,其中2个我已经能够保存,所以我可以在这里显示第一个错误的错误输出的重要部分:

C:\Program Files (x86)\Microsoft Visual Studio�7\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(67,5):错误 MSB8020:v140 的构建工具(平台工具集= 'v140') 找不到。要使用 v140 构建工具进行构建,请安装 v140 构建工具。 或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”来升级到当前的 Visual Studio 工具。 [C:\Users epop\Documents\DeveloperData\Clippy pp ode_modules etter-sqlite3 uild\deps ction_before_build.vcxproj]

完全错误

就这个错误而言,我尝试了多种方法,例如以多种不同的方式安装 Microsoft 可视化构建工具,例如手动访问其网站并下载 IDE,我还尝试通过 NPM 安装构建工具:

npm install --global --production windows-build-tools

它总是成功安装构建工具,但仍然出错,我还尝试使用以下命令编辑 npm 配置:

npm config set msvs_version 2017
还是不行。我还尝试去安装 Visual Studio 并手动检查:“VC++ 2017 版本 15.7 v14.14 最新 v141 工具”。也没什么。

我确实记得在某个时候我能够使用 Windows 10 正常构建所有内容,并且从未遇到过问题,但现在不再出现问题了。几个月来我一直在尝试自己解决这个问题,而且我一直坚持在 MacBook 上处理这个项目,在构建

better-sqlite3
包时从来没有出现过问题。

我尝试过的另一件事是彻底清除计算机上的所有内容并重新开始,因为在某些时候我更改了很多东西,以至于我忘记了我安装了什么和没有安装什么。

如果我从

better-sqlite3
文件中删除
package.json
包,一切都会顺利运行,我可以正常运行我的项目,但我需要
better-sqlite3
包。我可以使用另一个包,但我真的不应该这样做,我想弄清楚为什么这没有构建。

编辑

我将 Microsoft 构建工具 v14.0.23107.0 添加到我的 pats 变量中,现在它输出错误:

C:\Users epop\Documents\DeveloperData\Clippy ode_modules\integer uild\integer.vcxproj(21,3):错误 MSB4019:找不到导入的项目“C:\Microsoft.Cpp.Default.props”。确认 声明中的路径正确,并且该文件存在于磁盘上。

node.js npm electron node-gyp electron-rebuild
2个回答
2
投票

为自己解决了问题:

  1. 删除节点模块文件夹

  1. 以管理员权限打开PowerShell并按顺序运行

    npm install --global --product --vs2015 --add-python-to-path windows-build-tools

    npm install --global --product --add-python-to-path windows-build-tools node-gyp

  1. 转到

    ~/.npmrc
    并确保这些是您的设置:

    msvs_version=2015

    python=python2.7


0
投票

首先删除系统中安装的所有 Visual Studio 版本,并删除

path
system variable
中的条目。

并点击以下网址 https://github.com/nodejs/node-gyp#readme

better-sqlite3
中删除
package.json
此包条目后,一切运行正常,因为其他包没有任何本机依赖项。下载后,这个
better-sqlite3
是本机模块,该模块使用工具
node-gpy
构建,需要在您的系统上安装两个东西,即
python
visual studio

因此请尝试按照上述 URL 步骤操作。

一定会成功的。

© www.soinside.com 2019 - 2024. All rights reserved.