【问题标题】:NodeJS Error: Module version mismatch. Expected 48, got 46NodeJS 错误:模块版本不匹配。预期 48,得到 46
【发布时间】:2016-05-29 07:01:09
【问题描述】:

在我将 NodeJS 和 NPM 升级到 6.2.0 和 3.9.3 后,当我运行 hexo d -g 命令更新我的博客时,我收到以下错误:

Error: Module version mismatch. Expected 48, got 46.
    at Error (native)
    at Object.Module._extensions..node (module.js:568:18)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18)
{ Error: Cannot find module './build/default/DTraceProviderBindings'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32) code: 'MODULE_NOT_FOUND' }
{ Error: Cannot find module './build/Debug/DTraceProviderBindings'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32) code: 'MODULE_NOT_FOUND' }
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.

我想也许 Node.js 升级了,应该重新安装 node_modules

我试过rm -rf node_modules &amp;&amp; npm install,但它不起作用。我也试过sudo npm i -g npm然后npm install hexo --no-optional --save,这也不起作用。

任何建议将不胜感激。

【问题讨论】:

  • 我更喜欢先mv node_modules old_node_modules,然后是npm install,然后是rm -rf old_node_modules

标签: node.js hexo


【解决方案1】:

实际上,在升级 node 后,您安装的包仍然会针对旧版本进行编译,并且需要重新构建。无需删除 node_modules,也无需运行 npm update。

只要运行:

npm rebuild

【讨论】:

    【解决方案2】:

    Hexo 似乎不适用于最新版本的节点,即 6.2.0。您应该使用 node-v4.4.5 (LTS) 一段时间,这是大多数用户推荐的版本。

    【讨论】:

    • 谢谢兄弟,这真的很有帮助!
    【解决方案3】:

    看起来hexo 是一个全局安装的包,但您只是在本地重新安装了它。尝试全局重新安装:

    npm install hexo -g
    

    【讨论】:

      【解决方案4】:

      可能您的全局安装文件没有更新,请尝试使用以下命令更新您的 hexo-cli:

      sudo npm install -g hexo-cli

      解决了我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-02
        • 2016-12-09
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 2020-06-06
        相关资源
        最近更新 更多