将我的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-gyp
,rm -rf node_modules
和npm install
;
- 手动安装依赖项;
- 编辑package.json预安装node-gyp
"scripts":{
"preinstall": "npm i -g node-gyp && node-gyp clean"
}
任何人都有想法/知道如何解决这个问题? (理想情况下,解决方案不需要升级gcc)
另外,我正在使用Ryan J的custom cartridge for nodejs v.012
答案 0 :(得分:0)
我终于通过编辑.openshift\lib\utils
并在setup_path_for_custom_node_version()函数中添加导出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}"