Я пытаюсь реализовать crypto-js с ионными 2.Ионные 2 библиотеки импорта
Я сделал следующее:
npm install crypto-js typings install dt~crypto-js --global --save
Мои index.d.ts
теперь содержит:
/// <reference path="globals/crypto-js/index.d.ts" />
crypto-js
папка была создана под ./typings/global
тогда я пытаюсь следующий код:
declare var require: any;
import * as CryptoJS from 'crypto-js';
...
private CryptoJS: any;
constructor() {
this.CryptoJS = require("crypto-js");
}
test() {
alert(this.CryptoJS);
}
Как только я пытаюсь ссылку this.CryptoJS
(т.е. alert(this.CryptoJS)
) в приложение падает.
Я делаю что-то не так, как я импортирую библиотеки crypto-js
. Пожалуйста, кто-нибудь может посоветовать?
Благодаря
UPDATE:
следующие this, я бегу:
>npm install --save @types/cryptojs npm WARN package.json [email protected] No repository field. npm WARN package.json [email protected] No README data npm WARN package.json [email protected] No license field. @types/[email protected] node_modules\@types\cryptojs
Как импортировать CryptoJS
в коде?
Благодаря
UPDATE:
import { Injectable } from "@angular/core";
import { LanguageModel } from './languageModel';
import { LocationModel } from './locationModel';
import { JobModel } from './jobModel';
import 'crypto-js';
@Injectable()
export class PersonModel {
public id: number = null;
public joiningDate: number = null;
public lastAccessDate: number = null;
public userName: string = null;
public password: string = null;
public firstName: string = null;
public lastName: string = null;
public emailAddress: string = null;
public locations: LocationModel[] = [];
public languages: LanguageModel[] = [];
public time: string = null;
public avatar: string = null;
public avatar64: string = null;
//private CryptoJS: any;
private SECERET_KEY: string = 'secret key 123';
public getPasswordEcrypted(): string {
// Decrypt
var bytes = CryptoJS.AES.decrypt(this.password.toString(), this.SECERET_KEY);
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log('getPasswordEcrypted', plaintext);
return plaintext;
}
public setPasswordEncrypted(password: string): void {
// Encrypt
alert(password);
console.log('setPasswordEncrypted', password, CryptoJS);
alert(CryptoJS);
var ciphertext = CryptoJS.AES.encrypt(password, this.SECERET_KEY);
alert(ciphertext);
console.log('setPasswordEncrypted', password, ciphertext);
this.password = ciphertext;
}
}
UPDATE:
Переход к:
import CryptoJS from 'crypto-js';
приводит:
ОБНОВЛЕНИЕ:
Запуск этого:
typings install dt~crypto-js --global --save
результаты без каких-либо ошибок сборки, но во время выполнения, когда CryptoJS
доступ (например, console.log(CryptoJS);
), приложение падает.
Предполагается, что это путь вперед: https://www.npmjs.com/package/@types/cryptojs – Richard
Не могли бы вы сообщить мне, откуда вы получаете SECRET_KEY? закрытый SECERET_KEY: string = 'секретный ключ 123'; Определен ли пользователь? –