在角度2项目中导入crypto-js(使用angular-cli创建)

时间:2016-07-20 11:12:12

标签: angular cryptojs

我试图在我的angular2项目中导入crypto-js。

我关注了几个SO问题以及angular-cli guide,但最后我仍然有错误无法找到模块' crypto-js'

我尝试了什么:

npm install crypto-js --save

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

然后我修改了文件 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)'
    ]
  });
};

和文件 src / system-config.ts

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

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

使用后

import * as CryptoJS from 'crypto-js';

我仍然有错误。我错过了什么吗?

由于

6 个答案:

答案 0 :(得分:20)

这可能会对您有所帮助:
https://github.com/Uisli21/SecureAngularLogin

import * as CryptoJS from 'crypto-js';

然后:

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

EXPLAIN (FORMAT json, COSTS true)

答案 1 :(得分:1)

您可以尝试以下解决方案:

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


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


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

答案 2 :(得分:0)

Angular-cli仍然存在一些集成第三方插件的问题。所以,别忘了在index.html中添加它。像这样添加

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

我认为它会解决你的问题:)

更新

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



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

答案 3 :(得分:0)

好的我明白了。我只是在typings / crypto-js /中下载DefinitelyTyped文件,然后在导入CryptoJS之前添加行/// <reference path="../../typings/crypto-js/crypto-js.d.ts" />

答案 4 :(得分:0)

将此添加到您的Package.JSON文件中。

"browser": {
    "crypto": false
}

这样做会告诉您的应用程序在您运行ng serve时不要将您的Crypto库捆绑到浏览器中。

答案 5 :(得分:0)

在安装 cryto-js 和@ types / crypto-js

后,在 angular-cli.json 文件中添加脚本路径。
"scripts": [
    "../node_modules/crypto-js/crypto-js.js"
]