在 Openshift 上将 nodejs gear 升级到 v0.12 后出现 bcrypt 错误

bcrypt error after upgrading nodejs gear to v0.12 on Openshift

将我的 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_modulesnpm install
- 手动安装依赖项;
- 编辑 package.json 以预安装 node-gyp

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

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

此外,我正在使用 Ryan J 的 custom cartridge for nodejs v.012

我最终通过编辑 .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}"