Я изо всех сил пытался установить bcrypt все выходные. В течение выходных я обновил Узел до версии 10.15.3 (и npm 6.4.1).
Возможное решение - забыть о bcrypt и установить bcryptjs. Моя (возможно, необоснованная?) Проблема в том, что последней версии (2.4.3) bcryptjs исполнилось 2 года, тогда как bcrypt имеет преимущество постоянной поддержки. Я хотел бы использовать bcrypt в моем проекте.
Вот ошибка, которую я получил:
vagrant [server]> npm install bcrypt
npm WARN server@1.0.0 No description
npm WARN server@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! path /vagrant/barbershop-pevn/server/node_modules/bcrypt/node_modules/minipass/node_modules/yallist/package.json.3160920247
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/vagrant/barbershop-pevn/server/node_modules/bcrypt/node_modules/minipass/node_modules/yallist/package.json.3160920247'
В папке сервера ...
package.json
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "./node_modules/nodemon/bin/nodemon.js src/app.js --exec 'npm run lint && node'",
"lint": "./node_modules/.bin/eslint \"**/*.js\""
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.18.3",
"cors": "^2.8.5",
"dotenv": "^7.0.0",
"express": "^4.16.4",
"joi": "^14.3.1",
"jsonwebtoken": "^8.5.0",
"morgan": "^1.9.1",
"pg": "^7.9.0",
"pg-hstore": "^2.3.2",
"semver": "^5.6.0",
"sequelize": "^5.1.0"
},
"devDependencies": {
"eslint": "^5.15.3",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-plugin-import": "^2.16.0",
"eslint-plugin-vue": "^5.2.2",
"nodemon": "^1.18.10"
}
}
npm list -g --depth=0
возвращает:
/home/vagrant/.nvm/versions/node/v10.15.3/lib
├── @vue/cli@3.5.0
├── @vue/cli-init@3.5.0
├── http-server@0.11.1
├── node-gyp@3.8.0
├── npm@6.4.1
├── npm-check@5.9.0
└── npx@10.2.0
cat /etc/*release
возвращает:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
ОС моего mac: 10.13.6
ОСНОВНОЕ РЕДАКТИРОВАНИЕ 1:
Я сделал следующее:
vagrant [server]> sudo apt install node-gyp
А потом я получил эту ошибку:
vagrant [server]> npm install bcrypt
npm WARN server@1.0.0 No description
npm WARN server@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! path /vagrant/barbershop-pevn/server/node_modules/bcrypt/node_modules/minipass/node_modules/safe-buffer/package.json.3118274111
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/vagrant/barbershop-pevn/server/node_modules/bcrypt/node_modules/minipass/node_modules/safe-buffer/package.json.3118274111'
Что мне не хватает? Будем очень благодарны за любую помощь, которая позволяет установить bcrypt или, по крайней мере, указывает мне правильное направление.