0

将在我的 Openshift 设备上运行的 nodejs 版本从 v0.10 升级到 v0.12 后,我收到以下错误:

Error: /app-root/runtime/repo/node_modules/bcrypt/build/Release/bcrypt_lib.node: undefined     
symbol: node_module_register    
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/app-root/runtime/repo/node_modules/bcrypt/node_modules/bindings/bindings.js:76:44)
    at Object.<anonymous> (/app-root/runtime/repo/node_modules/bcrypt/bcrypt.js:3:35)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

我的 package.json 中的bcrypt版本设置为~0.8.5.

到目前为止,我已经尝试了这些但没有成功:
-rhc ssh myapp然后更新node-gyprm -rf node_modules然后npm install;
- 手动安装依赖项;
- 编辑 package.json 以预安装 node-gyp

"scripts":{
    "preinstall": "npm i -g node-gyp && node-gyp clean"
}

有人对我如何解决这个问题有想法/知道吗?(理想情况下,该解决方案不需要升级 gcc)

另外,我正在使用 Ryan J为 nodejs v.012 定制的墨盒

4

1 回答 1

0

我终于通过.openshift\lib\utils在 setup_path_for_custom_node_version() 函数中编辑和添加 export OPENSHIFT_NODEJS_VERSION=0.6 解决了这个问题:

#  Add the node binary path to the PATH.
export OPENSHIFT_NODEJS_VERSION=0.6
export PATH="$node_bin_path:${PATH}"
于 2015-11-30T17:32:48.070 回答