How to use 'crypto' module in Angular2?

前端 未结 4 670
无人及你
无人及你 2020-12-06 02:27

I install module:

npm install --save crypto

I import it to my component:

import { createHmac } from \"crypto\";


        
相关标签:
4条回答
  • 2020-12-06 02:38

    You need to install the definition files for a 3rd party library like crypto. So that typescript can find the "meaning" for it.

    I think the definition file is:

    npm install --save-dev @types/crypto-js 
    

    Then you can import the module like:

    import * as crypto from "crypto";
    

    If you can't find the definition file for that lib, you can write it on your own or as a workaround you can declare the module as any but typescript won't be able to auto-complete the methods.

    declare var crypto: any;
    

    and use its methods like:

    crypto.createHmac..
    
    0 讨论(0)
  • 2020-12-06 02:50

    To use crypto NodeJS library with Typescript (Angular >= 2 for example) follow these steps:

    1. npm install @types/node --save-dev to install NodeJS definitions
    2. In tsconfig.ts file add the following:

      "files": [ "./node_modules/@types/node/index.d.ts" ]

    3. Import the library where you want to use it with import * as crypto from 'crypto';

    0 讨论(0)
  • 2020-12-06 02:59

    The current tsconfig.json configuration (I'm using "typescript": "~3.5.3") includes a types compiler option that should be used in this case: In tsconfig.ts file add the following:

    {
      "compilerOptions": {
        "types" : [ "node" ]
       }
    }
    

    Import the library where you want to use it with import crypto from 'crypto'

    Don't use import * as crypto from 'crypto': it will import deprecated symbols/functions. (you should probably see the compiler complain about it)

    0 讨论(0)
  • 2020-12-06 03:03

    I am developing with the latest versions of Angular and 'crypto-js' seems to work fine.

    Install the package and the definitions:

    npm install crypto-js
    npm install --save @types/crypto-js
    

    Use it:

    import { SHA256, enc } from "crypto-js";
    ...
    login() {
    ...
       const hashedPass = SHA256(this.loginForm.value.password).toString(enc.Hex);
    ...
    }
    
    0 讨论(0)
提交回复
热议问题