2016-07-20 15 views
5

Próbuję zaimportować crypto-js do mojego projektu angular2.Importuj crypto-js w kanciastym 2 projekcie (utworzonym za pomocą kątowego-cli)

Śledziłem kilka SO pytania, a także angular-cli guide, ale w końcu nadal mam błąd nie można odnaleźć modułu 'krypto-js'

Co próbowałem:

npm install crypto-js --save

i

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

wtedy zmodyfikowany plik kątowe-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)' 
    ] 
    }); 
}; 

i plik src/SYSTEM config.ts

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

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

Po użyciu

import * as CryptoJS from 'crypto-js';

Nadal mam mój błąd. Przegapiłem coś ?

Dzięki

Odpowiedz

0

Ok mam. Właśnie pobieram plik DefinitelyTyped w typings/crypto-js /, a następnie dodaję linię /// <reference path="../../typings/crypto-js/crypto-js.d.ts" /> przed zaimportowaniem CryptoJS.

+0

Ten link nie działa ... Użyłem [link] (https://github.com/DefinitelyTyped/DefinitelyTyped/4869992bc079b88280b9ff91213528904109e8ae/crypto-js) i dodałem, że pliki w: node_modules/crypto-js to na mojej klasie I import: importuj * jako CryptoJS z "../../../node_modules/crypto-js" – antonio

0

kątowa-cli jeszcze pewne kwestie do integracji wtyczek firm trzecich. Więc, nie zapomnij dodać go do index.html. Dodaj jakby ten sposób

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

myślę, że będzie rozwiązać problem :)

Aktualizacja

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

Jeszcze nic:/ – Greg

+0

Czy wystąpił błąd? czy możesz też opublikować błąd? –

+0

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

7

To może pomóc:
https://github.com/Uisli21/SecureAngularLogin


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

następnie:

import * as CryptoJS from 'crypto-js'; 

lub

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

'importuj * jako CryptoJS z 'crypto-js';', To jest dobre! – Catscarlet

0

Można spróbować następujących jako Soluti na:

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


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


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

dzięki @ xdevs23 za edytowane ulepszenie. – zjx

+0

Używam SHA3 i dowiaduję się, że: 'import {SHA3} z" crypto-js ";' sprawia, że ​​dist.js jest trochę gruby niż 'import * jako SHA3 z 'crypto-js/sha3';'. To około 100 KB. Nie wiem dlaczego. – Catscarlet

Powiązane problemy