web-dev-qa-db-fra.com

Importer des crypto-js dans un projet angular 2 (créé avec angular-cli)

J'essaie d'importer des crypto-js dans mon projet angular2.

J'ai suivi plusieurs SO questions et aussi guide angular-cli , mais à la fin j'ai toujours l'erreur Impossible de trouver le module ' crypto-js '

Ce que j'ai essayé:

npm install crypto-js --save

et

typings install dt~crypto-js --global --save

puis j'ai modifié le fichier angular-cli-build.js

var Angular2App = require('angular-cli/lib/broccoli/angular2-app');

module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      'systemjs/dist/system-polyfills.js',
      'systemjs/dist/system.src.js',
      'zone.js/dist/**/*.+(js|js.map)',
      'es6-shim/es6-shim.js',
      'reflect-metadata/**/*.+(ts|js|js.map)',
      'rxjs/**/*.+(js|js.map)',
      '@angular/**/*.+(js|js.map)',
      'crypto-js/**/*.+(js|js.map)'
    ]
  });
};

et le fichier src/system-config.ts

const map: any = {
    'crypto-js': 'vendor/crypto-js'
};

/** User packages configuration. */
const packages: any = {
    'crypto-js': {
        format: 'cjs'
    }
};

Après avoir utilisé

import * as CryptoJS from 'crypto-js';

J'ai toujours mon erreur. Ai-je oublié quelque chose ?

Merci

8
Greg

OK j'ai compris. Je viens de télécharger le fichier DefinitelyTyped dans typings/crypto-js/puis j'ajoute la ligne /// <reference path="../../typings/crypto-js/crypto-js.d.ts" /> avant d'importer CryptoJS.

0
Greg

Cela peut vous aider:
https://github.com/Uisli21/SecureAngularLogin


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

ensuite:

import * as CryptoJS from 'crypto-js';

ou

import CryptoJS = require('crypto-js');
24
Weslley De Souza

Vous pouvez essayer la solution suivante:

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


2. import { AES } from "crypto-js";


3. AES.encrypt('my message', 'secret key');
2
zjx

Angular-cli a encore quelques problèmes pour intégrer des plugins tiers. Donc, n'oubliez pas de l'ajouter dans le index.html. Ajouter comme ça

<script src="vendor/crypto-js/crypto-js.js"></script> 

Je pense que cela résoudra votre problème :)

Mise à jour

const map: any = {
    'crypto-js': 'vendor/crypto-js'
};



/** User packages configuration. */
const packages: any = {
    'crypto-js': {
        format: 'cjs',
        defaultExtension: 'js',
        main: 'crypto-js.js'
    }
};
0
pd farhad