node.js - npm install serialport是否需要VS?

标签 node.js visual-studio npm electron

我一直在尝试为 Electron 项目安装串行端口,但是每当我使用npm install serialport,我最终遇到以下错误

E:\Windows\Desktop\Work\Electron\testing>npm install serialport

> @serialport/bindings@8.0.7 install E:\Windows\Desktop\Work\Electron\testing\node_modules\@serialport\bindings
> prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=13.6.0 runtime=node arch=x64 libc= platform=win32)

E:\Windows\Desktop\Work\Electron\testing\node_modules\@serialport\bindings>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! find VS
gyp ERR! find VS msvs_version not set from command line or npm config
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS checking VS2019 (16.4.29709.97) found at:
gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
gyp ERR! find VS - found "Visual Studio C++ core features"
gyp ERR! find VS - found VC++ toolset: v142
gyp ERR! find VS - missing any Windows SDK
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use
gyp ERR! stack     at VisualStudioFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16
gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:351:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:70:14
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:310:5)
gyp ERR! stack     at ChildProcess.emit (events.js:321:20)
gyp ERR! stack     at maybeClose (internal/child_process.js:1028:16)
gyp ERR! System Windows_NT 10.0.18363
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd E:\Windows\Desktop\Work\Electron\testing\node_modules\@serialport\bindings
gyp ERR! node -v v13.6.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN testing@1.0.0 No description
npm WARN testing@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @serialport/bindings@8.0.7 install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @serialport/bindings@8.0.7 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\hp\AppData\Roaming\npm-cache\_logs\2020-04-11T08_43_12_018Z-debug.log

仔细阅读这些错误,我发现他们尝试使用VS,但这使我想知道为什么它首先需要VS。我浏览了serialport的文档,除了对gyp使用python2之外,他们没有提到任何先决条件,我已经将它们添加到了路径中。
如果你们可以帮助我解决此错误,那将是一个很大的帮助。

我当前正在使用Node的V13.6.0。

最佳答案

浏览日志后,我意识到串行端口不是VS所需要的。
当要安装serialport时,它将检查当前正在使用的 Node 版本,然后根据该版本进行构建。
为此,node使用了gyp,它使用python2和Visual Studio的C++ dev env进行所需的更改,
more on node-gyp。安装完之后,一切似乎都运行顺利。

只是想说一下,如果有人遇到这样的小问题,在这里对他们来说会很方便... ^^

关于node.js - npm install serialport是否需要VS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61154241/

相关文章:

javascript - websockets - 从 websocket 服务器获取消息并将其发送到客户端

node.js - browserslist 查询如何组合在多行 browserslist 配置中?

javascript - 在性能问题之前有多少个并发 setTimeouts?

node.js - Angular:无法使用 ng-Command

jquery - 为什么 npm 安装 jqueryui 包失败?

javascript - 字符串常量和 JSON 处理

javascript - 使用 VS 2013 的自定义自动格式化程序 "Edit->Format Document"

visual-studio - Visual Studio/ReSharper 的关键启动器插件

javascript - Visual Studio 2013、TFS 和 _references.js 文件的问题

javascript - Chart.js 未随 NPM 安装