2016-07-20 23 views
5

Ich versuche crypto-js in meinem angular2 Projekt zu importieren.Crypto-js in einem eckigen 2 Projekt importieren (erstellt mit angular-cli)

ich mehrere SO Fragen und auch angular-cli guide, aber am Ende folgte ich habe immer noch den Fehler kann nicht Modul ‚Krypto js‘

Was finde ich versucht:

npm install crypto-js --save

und

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

dann modifiziert I die Datei Winkel-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)' 
    ] 
    }); 
}; 

und die Datei src/System-config.ts

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

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

Nach der Verwendung

import * as CryptoJS from 'crypto-js';

Ich habe immer noch meinen Fehler. Habe ich etwas verpasst ?

Dank

Antwort

0

Ok, ich habe es. Ich lade einfach die Datei DefinitelyTyped in typings/crypto-js/herunter und füge die Zeile /// <reference path="../../typings/crypto-js/crypto-js.d.ts" /> hinzu, bevor ich CryptoJS importiere.

+0

Dieser Link funktioniert nicht ... Ich habe [link] (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/4869992bc079b88280b9ff91213528904109e8ae/crypto-js) und fügte hinzu, dass Dateien in: node_modules/crypto-js dann auf meiner Klasse I importiert: import * als CryptoJS von '../../../node_modules/crypto-js' – antonio

0

Angular-cli haben noch einige Probleme Plugins von Drittanbietern zu integrieren. Also, vergessen Sie nicht, es in der index.html hinzuzufügen. Fügen Sie wie auf diese Weise

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

Ich denke, es ist Ihr Problem zu lösen :)

aktualisieren

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

Immer noch nichts:/ – Greg

+0

Gibt es einen Fehler? Kannst du den Fehler auch posten? –

+0

Sicher. http://pastebin.com/PxtS0shb – Greg

7

Dies kann Ihnen helfen:
https://github.com/Uisli21/SecureAngularLogin


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

dann:

import * as CryptoJS from 'crypto-js'; 

oder

import CryptoJS = require('crypto-js'); 
+1

'import * als CryptoJS von 'crypto-js';', Das ist gut! – Catscarlet

0

Sie können versuchen, als soluti folgenden an:

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


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


3. AES.encrypt('my message', 'secret key'); 
+0

danke @ xdevs23 für die bearbeitete Erweiterung. – zjx

+0

Ich benutze SHA3 und ich finde das: 'importieren {SHA3} aus" crypto-js ";' macht die dist.js ein wenig dicker als 'importieren * als SHA3 aus 'crypto-js/sha3';'. Es ist ungefähr 100KB. Ich weiß nicht warum. – Catscarlet