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