Не удается установить bcrypt на сервер для проекта Vuejs 2.6.9 / Webpack 4.29.6 с использованием NodeJS 10.15.3 и NPM 6.4.1 на виртуальной машине Vagrant - PullRequest
0 голосов
/ 18 марта 2019

Я изо всех сил пытался установить 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 или, по крайней мере, указывает мне правильное направление.

1 Ответ

0 голосов
/ 19 марта 2019

Я думаю, что это проблема npm. Я могу успешно установить bcrypt, используя yarn или pnpm (что выглядит довольно привлекательно) на NodeJS версий 8.15.1 и 10.15.3. Мой вопрос был об установке bcrypt (не обязательно с использованием npm), поэтому я хочу сказать, что на данный момент я получил удовлетворительный ответ: используйте yarn или pnpm (или просто установите brcyptjs). Я поднял вопрос на github.

...