use*_*469 74 elf bcrypt node.js
我正在为学校开展一个nodejs项目.我无法用npm安装bcrypt所以我安装了bcrypt-nodejs并且该项目昨天工作正常.但今天,当我做"节点应用程序"时,我有这个错误:
/.../node_modules/bcrypt/node_modules/bindings/bindings.js:79
throw e
^
Error: /.../node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
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 (/.../node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
at Object.<anonymous> (/.../node_modules/bcrypt/bcrypt.js:1:97)
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)
at Module.require (module.js:364:17)
at require (module.js:380:17)
Run Code Online (Sandbox Code Playgroud)
我的package.json文件如下所示:
{
"name": "Supinfarm",
"version": "0.0.0",
"env": {
"PYTHON": "/usr/bin/python2.6"
},
"dependencies": {
"express": "3.1.0",
"connect-flash": "*",
"jade": "*",
"stylus": "*",
"passport": "*",
"passport-local": "*",
"mongoose": "*",
"bcrypt": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
我在Linux上ubuntu 10.04 LTS我试图在google上找到解决方案但没有成功......有人可以帮助我吗?
Cma*_*mag 145
我发现在OSX上编译的bcrypt在Linux上不太适用.换句话说,如果您检查在本地OSX工作站上编译的bcrypt,并尝试在Linux服务器上运行节点应用程序,您将看到上面的错误.
解决方案:npm install bcrypt在Linux上,检查一下,解决了.
处理此问题的最佳方法可能是排除.gitignore中的node_modules ...以及远程安装npm.
Tac*_*ter 20
如果您像我一样在 docker 容器中运行,那么您只需要一个 .dockerignore 并在其中指定了“node_modules”。
某些库需要在主机上编译,因此您的模块可能已经过时。
Swe*_*hmi 15
我遇到了同样的问题。我使用 Windows 在 AWS Lambda 中通过代码进行部署。我遇到了同样的错误。我使用“bcryptjs”npm 库修复了它。
npm install bcryptjs
小智 13
我的问题是我的 docker-compose.yml 文件,我的 .dockerignore 中已经有 node_modules 但我还需要将 node_modules 目录添加为一个卷:
volumes:
- ./:/usr/src/app
- /usr/src/app/node_modules
Run Code Online (Sandbox Code Playgroud)
小智 8
将包更改为:
npm install bcryptjs
Run Code Online (Sandbox Code Playgroud)
var bcrypt = require('bcryptjs');
Run Code Online (Sandbox Code Playgroud)
功能是一样的。
在此处获取更多信息https://github.com/dcodeIO/bcrypt.js
小智 7
我也遇到了 bcrypt v.1.0.3 的同样问题。刚刚更新到最新版本(3.0.1),现在工作正常
跑
npm install bcrypt@latest --save
Run Code Online (Sandbox Code Playgroud)
有一种简单的方法可以让我解决这个问题:
1.卸载bcrypt
npm uninstall bcrypt
Run Code Online (Sandbox Code Playgroud)
2.- 再次安装 bcrypt
npm i bcrypt
Run Code Online (Sandbox Code Playgroud)
出现这个错误是因为当你安装bcypt时,npm会为你的机器和操作系统安装推荐的版本,但是当你在另一台机器上时,这不起作用。
--------更新----------------------------------------
在我看来,另一个解决方案是向 bcrypt 安装授予 root 权限,这是因为 bcryp 使用自己的用户但它没有权限,所以:
1. 您必须授予项目文件夹的 root 权限。走出你的项目文件夹,然后
sudo su
Run Code Online (Sandbox Code Playgroud)
然后输入您的root密码以获取root用户权限
2. 授予对您的项目文件夹的权限
chmod -R 777 <project_folder>
Run Code Online (Sandbox Code Playgroud)
3. 进入你的项目文件夹并安装 bcrypt
cd <project_folder>
Run Code Online (Sandbox Code Playgroud)
和
npm i bcrypt --unsafe-perm=true --allow-root --save
Run Code Online (Sandbox Code Playgroud)
准备好,如果一切正常,您的 bcrypt 模块将毫无问题地安装。
| 归档时间: |
|
| 查看次数: |
44604 次 |
| 最近记录: |