Cloud foundry 在Micro Cloud Foundry上部署Calipso时NodeJS bcrypt错误
我试图用VMC将Calipso推到我拥有的一个Micro Cloud Foundry实例上,我被一个错误抛出,说Cloud foundry 在Micro Cloud Foundry上部署Calipso时NodeJS bcrypt错误,cloud-foundry,bcrypt,Cloud Foundry,Bcrypt,我试图用VMC将Calipso推到我拥有的一个Micro Cloud Foundry实例上,我被一个错误抛出,说 Unable to load shared library /var/vcap/data/dea/apps/{App-Name&ID}/app/node_modules/bcrypt/build/Release/bcrypt_lib.node at Object..node (module.js:463:11) at Module.load (module.js:
Unable to load shared library /var/vcap/data/dea/apps/{App-Name&ID}/app/node_modules/bcrypt/build/Release/bcrypt_lib.node
at Object..node (module.js:463:11)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at bindings (/var/vcap/data/dea/apps/Apptain-0-cb7703ae25d61741a91f9a828959ea6e/app/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
at Object.<anonymous> (/var/vcap/data/dea/apps/{App-Name&ID}/app/node_modules/bcrypt/bcrypt.js:1:96)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
但这很奇怪,因为整个街区
var tries = []
, i = 0
, l = opts.try.length
, n
for (; i<l; i++) {
n = join.apply(null, opts.try[i].map(function (p) {
return opts[p] || p
}))
tries.push(n)
try {
var b = require(n)
b.path = n
return b
} catch (e) {
if (!/not find/i.test(e.message)) {
throw e
}
}
}
var尝试=[]
,i=0
,l=opts.try.length
N
对于(;i免责声明:我绝不是node.js专家,但lib的路径似乎有问题,即“{App Name&ID}”部分
由于bcrypt是本机dep,因此需要进行特殊处理。所有这些都在此处解释:
如果你还没有的话,你可能想看看。
另外,我不太确定那篇博文中描述的内容是否适用于(您的版本)micro CloudFoundry。您可能想在real CloudFoundry.com网站上试用一下,看看它是否解决了您的问题。“{App Name&ID}”只是我用于我的应用程序的实际名称和ID的占位符。{“ignoreNodeModules”:true}我确实有一个cloudfoundry.json文件,其中包含json{“ignoreNodeModules”:true},我还有一个npm-shrinkwrap.json,所以我希望它会忽略node_modules文件夹,但事实并非如此。如果我从node_modules中拉出bcrypt,它将无法找到它。我与8月份发布的以下博客文章完全一致,唯一的区别是我没有部署到cloudfoundry.com子域,因此我的microcloud处于脱机模式(我是如何让它与常规域一起工作的)。好的,我很确定这个问题是因为micro(我猜你有1.2.0)早于对本机模块的支持。你能尝试在cf.com上部署以确认吗?Eric是正确的。microcloud Foundry的下一次更新应该会解决这个问题。
var tries = []
, i = 0
, l = opts.try.length
, n
for (; i<l; i++) {
n = join.apply(null, opts.try[i].map(function (p) {
return opts[p] || p
}))
tries.push(n)
try {
var b = require(n)
b.path = n
return b
} catch (e) {
if (!/not find/i.test(e.message)) {
throw e
}
}
}