所以我正在运行一个 Electron 应用程序,该应用程序有一些本机模块,其中一个是一个名为better-sqlite3
. 我运行纱线,纱线能够毫无问题地安装所有软件包,但是当它进入构建步骤时,一切都会中断。
我得到了一堆不同的node-gyp
错误输出,其中 2 个我已经能够保存,所以我可以在这里展示第一个错误的错误输出的重要部分:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(67,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\Users\bepop\Documents\DeveloperData\Clippy\app\node_modules\better-sqlite3\build\deps\action_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\bepop\Documents\DeveloperData\Clippy\node_modules\integer\build\integer.vcxproj(21,3): error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.