如何解决从早期版本的Node.js恢复工作的问题?

时间:2016-02-16 23:14:07

标签: node.js migration

我刚刚将(/ usr / local / bin /)节点升级到5.6.0,由nodejs.org的.pkg软件包安装,并尝试移植旧项目以使用当前节点。 / p>

我预计需要从我的代码中解决多个问题,但目前(可能是过时的)调用错误地出现在我自己的代码上。我最好的猜测是我得到了两个Node安装的不兼容混合物;如果是这样,完全卸载两个版本然后安装5.6.0的最佳方法是什么?

我看到的错误信息是:

Inner Sanctum ~/archive/pragmatometer $ /usr/local/bin/node bin/www
module.js:440
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: Module version mismatch. Expected 47, got 44.
    at Error (native)
    at Object.Module._extensions..node (module.js:440:18)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object. (/Users/christos/archive/pragmatometer/node_modules/scrypt/index.js:3:20)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)

我可以/应该做些什么来解决这个问题并继续下一步移植我的代码?

谢谢,

1 个答案:

答案 0 :(得分:2)

编辑:根据我读过的其他问题,它似乎是node_modules文件夹中脚本内的VERSION_STRING常量的问题。尝试删除整个node_modules文件夹并使用当前安装的新节点版本运行fork以获得新的模块安装。

另外我建议结帐n,这是一个非常小的节点版本管理器,可以帮助您在不同版本的节点之间切换。