1

所以我正在运行一个 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.

4

2 回答 2

2

为自己解决了这个问题:

  1. 删除节点模块文件夹

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

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

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

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

    msvs_version=2015

    python=python2.7

于 2018-12-05T20:34:08.860 回答
0

首先从系统中删除所有安装的 Visual Studio 版本,并从path和中删除条目system variable

并按照以下 URL https://github.com/nodejs/node-gyp#readme

better-sqlite3删除此包条目后,每件事都运行良好,package.json因为其他包没有任何本机依赖项。这better-sqlite3是下载后的本机模块,该模块使用工具构建node-gpy,需要在您的系统上安装两件东西,pythonvisual studio.

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

它肯定会奏效。

于 2018-12-04T08:58:08.660 回答