Не удается установить bcrypt.ts в код Visual Studio для функции пароля ha sh - PullRequest
1 голос
/ 09 мая 2020

в настоящее время я пытаюсь реализовать функцию ha sh на основе руководства npmjs по bcrypt:

var bcrypt = require('bcrypt.ts');

// Sync - 10 rounds equal 10 hashes/sec
const saltRounds = 10;
const randomString = 'p4$$w0rD';

// Hash Password
var hash = bcrypt.hashSync(randomString, saltRounds);

console.log(hash);

После нескольких попыток установить модуль bcrypt с помощью «npm install bcrypt ", каждый раз появлялась следующая ошибка:

> bcrypt@4.0.1 install C:\Users\Public\secrethash\node_modules\bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@4.0.1 and node@12.16.3 (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error Remote end closed socket abruptly.

Я уже искал эту ошибку в Интернете, однако не нашел общего исправления или обходного пути. Через некоторое время я попробовал npm перестроить, npm удалить bcrypt (и переустановить его с помощью npm install bcrypt), исправив несколько проблем с nody-gyp и т.д. c. Однако после глобальной установки и включения всех видов выполнения скриптов предыдущая ошибка все еще появлялась, но каким-то образом bcrypt должен был быть успешно установлен:

PS C:\Users\Public\secrethash> npm install bcrypt

> bcrypt@4.0.1 install C:\Users\Public\secrethash\node_modules\bcrypt
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@4.0.1 and node@12.16.3 (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error Remote end closed socket abruptly.
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu ermöglichen, müssen Sie den Schalter "/m" hinzufügen.
  nothing.vcxproj -> C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\\nothing.lib
  blowfish.cc
  bcrypt.cc
  bcrypt_node.cc
  win_delay_load_hook.cc
     Bibliothek "C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\bcrypt_lib.lib" und O
  bjekt "C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\bcrypt_lib.exp" werden erstel
  lt.
  bcrypt_lib.vcxproj -> C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\\bcrypt_lib.no
  de
  Copying C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\/bcrypt_lib.node to C:/Users
  /Public/secrethash/node_modules/bcrypt/lib/binding/napi-v3\bcrypt_lib.node
          1 Datei(en) kopiert.
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\Public\secrethash\package.json'npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Public\secrethash\package.json'
npm WARN secrethash No description
npm WARN secrethash No repository field.
npm WARN secrethash No README data
npm WARN secrethash No license field.

+ bcrypt@4.0.1
updated 1 package and audited 441 packages in 11.015s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Прямо сейчас я могу найти папку bcrypt в папке node_modules проекта, однако (и именно здесь мой вопрос действительно возникает), при выполнении функции машинописного текста через ts c и узел, bycrypt.ts как модуль не может быть найден:

Error: Cannot find module 'bcrypt.ts'
Require stack:
- C:\Users\Public\secrethash\secret_hash.js
?[90m    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:840:27)?[39m
?[90m    at Module.require (internal/modules/cjs/loader.js:1019:19)?[39m
?[90m    at require (internal/modules/cjs/helpers.js:77:18)?[39m
    at Object.<anonymous> (C:\Users\Public\secrethash\secret_hash.js:1:14)
?[90m    at Module._compile (internal/modules/cjs/loader.js:1133:30)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:977:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:877:14)?[39m
?[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)?[39m {
  code: ?[32m'MODULE_NOT_FOUND'?[39m,
  requireStack: [ ?[32m'C:\\Users\\Public\\secrethash\\secret_hash.js'?[39m ]
}

Следовательно Я хотел бы спросить, может ли кто-нибудь из вас объяснить, почему модуль до сих пор не найден? Может быть, я совершенно ошибаюсь, когда дело касается хранения модулей и рабочих каталогов (впервые работаю с кодом VS и node.js / npm / typescript). В связи с этим я также загрузил структуру папок, чтобы предотвратить любые недоразумения, в какой каталог должны быть помещены модули. Если вам нужна дополнительная информация, я рад поделиться другими примерами кодов ошибок.

С уважением и благодарностью!

Верхняя папка-хранилище

Нижняя папка-хранилище

1 Ответ

0 голосов
/ 09 мая 2020

Я считаю, что предоставленный вами вывод не является большой проблемой, он, по сути, информирует вас о своем решении вернуться к другим методам (вместо полного выхода).

Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu ermöglichen, müssen Sie den Schalter "/m" hinzufügen.
  nothing.vcxproj -> C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\\nothing.lib
  blowfish.cc
  bcrypt.cc
  bcrypt_node.cc
  win_delay_load_hook.cc
     Bibliothek "C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\bcrypt_lib.lib" und O
  bjekt "C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\bcrypt_lib.exp" werden erstel
  lt.
  bcrypt_lib.vcxproj -> C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\\bcrypt_lib.no
  de
  Copying C:\Users\Public\secrethash\node_modules\bcrypt\build\Release\/bcrypt_lib.node to C:/Users
  /Public/secrethash/node_modules/bcrypt/lib/binding/napi-v3\bcrypt_lib.node
          1 Datei(en) kopiert.

Это загрузка и скомпилировать исходный код так, чтобы он был совместим с Node.js, он не мог сделать это быстрее, поэтому прибег к ручному.

Тем не менее, он завершил обновление bcrypt:

+ bcrypt@4.0.1
updated 1 package and audited 441 packages in 11.015s

Кроме того, bcrypt.ts не существует, вам не нужно добавлять .ts, поскольку вы ссылаетесь на библиотеку, даже тогда вам не нужно добавлять расширение файла для .ts или .js .

Вы используете TypeScript? Мне кажется, вы используете Node.js, поэтому .ts не нужен / совместим.

...