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

Import crypto-js in an angular 2 project (created with angular-cli)

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

我遵循了几个 SO 问题以及 angular-cli guide,但最后我仍然遇到错误 Cannot find module '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';

我的错误仍然存​​在。我错过了什么吗?

谢谢

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

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


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

然后:

import * as CryptoJS from 'crypto-js';

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

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

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


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


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

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

"browser": {
    "crypto": false
}

这样做会在您 运行 ng serve 时告诉您的应用程序不要捆绑您的加密库以服务于浏览器。

安装cryto-js&@[后在angular-cli.json文件中添加脚本路径=17=]

"scripts": [
    "../node_modules/crypto-js/crypto-js.js"
]