【问题标题】:Node module version conflict while developing package for Atom为 Atom 开发包时节点模块版本冲突
【发布时间】:2020-02-28 23:17:16
【问题描述】:

我正在为 Atom 开发我的第一个包。为此,我需要这个包nodegit(here the official website)。

当我尝试运行我的包时,我收到了这个错误:

The module '/Users/danny/github/branch-control/node_modules/nodegit/build/Release   
/nodegit.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 69. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).

我已经尝试在网上查找,但我找到的解决方案都没有解决我的问题。

我尝试使用npm rebuildnpm rebuild nodegit,我尝试使用--update-binary 安装它,我尝试使用不同的节点版本,但没有成功。

而且上面写着NODE_MODULE_VERSION 69,但是node版本里没有69的版本,直接从64变成72

我在网上查到这个69指的是electron使用的node版本,但是我觉得改不了,因为是Atom使用的版本。

我该如何解决这个问题并继续?

这是我的环境:

  • macOS Catalina 10.15
  • 原子 1.44.0
    • 电子 4.2.7
    • 铬 69
    • 节点 10.11.0

【问题讨论】:

  • 删除你的node_modules 目录,运行npm cache clean,然后重新运行npm install,任何需要编译的东西现在都应该根据你实际使用的节点版本重新编译。此外,您可能希望停止使用 Node 10,它在 4 月停止了积极支持,v12 是“当前”LTS 版本。
  • 而且您可能想要使用最新版本的电子,其中包含(几乎)最新版本的铬以及他们迄今为止应用的所有安全修复程序。
  • @Mike'Pomax'Kamermans 我试图清理缓存,但问题仍然存在。我已经尝试过使用节点 12,同样的问题。我不认为我可以更改电子版本。正如我所说,我正在开发一个 Atom 包,而 Atom 是使用该版本的电子、节点和铬构建的:/

标签: node.js npm electron atom-editor


【解决方案1】:

您需要为此使用electron-rebuild

来自自述文件:

此可执行文件根据您的 Electron 项目正在使用的 Node.js 版本重建本机 Node.js 模块。这允许您在 Electron 应用程序中使用本机 Node.js 模块,而您的系统版本的 Node.js 不完全匹配(通常情况并非如此,有时甚至不可能)。

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2017-11-09
    • 2017-06-27
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多