由于 bcrypt 而导致流星破坏的帐户密码

accounts-password from meteor breaking because of bcrypt

我收到这个错误:

Error: Can't find npm module 'bcrypt'. Did you forget to call 'Npm.depends' in package.js within the 'npm-bcrypt' package?

我不知道该怎么做..我只是在学习 meteor 但我之前有 userd accounts-password 和 accounts-ui 没有任何问题。但是现在它要求依赖项。如果我在“.meteor/packages”中注释掉帐户密码页面,那么服务器将毫无问题地启动。

以前有人遇到过这个问题吗?这是完整的错误。

W20150602-09:54:54.633(-7)? (STDERR)
W20150602-09:54:54.635(-7)? (STDERR) /Users/VCarlos/.meteor/packages/meteor-tool/.1.1.3.1wysac9++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245 W20150602-09:54:54.635(-7)? (STDERR) throw(ex); W20150602-09:54:54.635(-7)? (STDERR) ^ W20150602-09:54:54.639(-7)? (STDERR) Error: Can't find npm module 'bcrypt'. Did you forget to call 'Npm.depends' in package.js within the 'npm-bcrypt' package? W20150602-09:54:54.640(-7)? (STDERR) at Object.Npm.require (/Users/VCarlos/Dropbox/wdi/inslim/.meteor/local/build/programs/server/boot.js:155:17) W20150602-09:54:54.640(-7)? (STDERR) at Package (packages/npm-bcrypt/wrapper.js:1:1) W20150602-09:54:54.640(-7)? (STDERR) at /Users/VCarlos/Dropbox/wdi/inslim/.meteor/local/build/programs/server/packages/npm-bcrypt.js:21:4 W20150602-09:54:54.640(-7)? (STDERR) at /Users/VCarlos/Dropbox/wdi/inslim/.meteor/local/build/programs/server/packages/npm-bcrypt.js:30:3 W20150602-09:54:54.641(-7)? (STDERR) at /Users/VCarlos/Dropbox/wdi/inslim/.meteor/local/build/programs/server/boot.js:222:10 W20150602-09:54:54.641(-7)? (STDERR) at Array.forEach (native) W20150602-09:54:54.642(-7)? (STDERR) at Function..each..forEach (/Users/VCarlos/.meteor/packages/meteor-tool/.1.1.3.1wysac9++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11) W20150602-09:54:54.642(-7)? (STDERR) at /Users/VCarlos/Dropbox/wdi/inslim/.meteor/local/build/programs/server/boot.js:117:5

发生这种情况是因为您在一个平台(OS X、Windows 等)上创建您的包,然后在另一个平台(不同于原始平台)上部署您的项目。

要修复此问题,请在您的应用中安装 bcrypt:

在您解压缩的目录中:

(cd programs/server && npm install)
cd programs/server/npm/npm-bcrypt/node_modules/
rm -rf bcrypt
npm install bcrypt

由于您的模式是开发模式,您可能需要进入 .meteor/local/build 才能进入捆绑目录。

您的应用有一个奇怪的结构,在您的应用中包含 packages/npm-bcrypt 并不常见。这是一个原生的流星包。您可能想联系该应用程序的作者,询问为什么 s/he 将此包放在这里,如果它没有被修改,请将其删除,以便 Meteor 可以使用为您的平台设计的本机 bcrypt 包。

已接受的答案对我不起作用,但这确实有效:

rm -rf ~/.meteor/packages/npm-bcrypt.

然后在 运行 meteor 之后再次下载 bcrypt,一切正常。

我发现当我在我的项目中安装或卸载包时服务器仍然 运行 时会出现许多错误。只需重新启动我的服务器即可解决我的 bcrypt 问题。