在npm依赖项中处理版本不兼容

某些上下文

每次在新版本的Node上构建VS Code时,VS Code Arduino扩展都会中断,直到发布新版本为止。

克隆了Arduino扩展git repo后,我将其卸载为扩展并在调试器中运行。这行得通,如果我只知道如何采取行动,那么我现在有了特定的英特尔。这是消息:

[Warn] no library available after trying files native_loader.js
undefined
Array[3]
0
"d:/vscode-arduino/out/node_modules/node-usb-native/lib/native/detector_darwin_7.1.11_x64.node"
1
"d:/vscode-arduino/out/node_modules/node-usb-native/lib/native/detector_Ubuntu14.04_7.1.11_x64.node"
2
"d:/vscode-arduino/out/node_modules/node-usb-native/lib/native/detector_win32_7.1.11_x64.node"
rejected promise not handled within 1 second: Error: The module '\\?\d:\vscode-arduino\out\node_modules\usb-detection\build\Release\detection.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 80. Please try re-compiling or re-installing
the module (for instance,using `npm rebuild` or `npm install`).
 extensionHostProcess.js
stack trace: Error: The module '\\?\d:\vscode-arduino\out\node_modules\usb-detection\build\Release\detection.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 80. Please try re-compiling or re-installing
the module (for instance,using `npm rebuild` or `npm install`).

这些文件中的最后一个(Windows x64文件)确实存在于预期路径上,因此“没有可用的库”并不意味着它找不到该文件。这与该消息的结尾一致,该消息报告找不到合适的版本。

此消息末尾提示npm rebuildnpm i,所以我尝试了这些都无济于事。

package.json中正在翻录

  "scripts": {
    "vscode:prepublish": "gulp build --mode=production","postinstall": "cd ./src/views && npm install && node ../../node_modules/node-usb-native/scripts/rebuild-serialport.js","test": "gulp test"
  },"extensionDependencies": [
    "ms-vscode.cpptools"
  ],"devDependencies": {
    "@types/compare-versions": "^3.0.0",...
    "webpack": "^4.44.1"
  },"dependencies": {
    ...
    "node-usb-native": "0.0.13",...
  }

node-usb-native的依赖关系落后于最新的(0.0.15)。更改此设置并运行npm i会将安装后任务触发到rebuild-serialport.js,该任务似乎成功了,但是在运行时出现相同的错误。

问题

我该如何解决?

  • 究竟需要重建什么? usb-detection未在依赖项(或devDependencies)中列出,但如果我没记错的话,node-usb-native取决于它。
  • 我该如何处理,以使代码抱怨 版本会看到新鲜的薄荷糖?
iCMS 回答:在npm依赖项中处理版本不兼容

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1545037.html

大家都在问