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

在angular 2项目中导入crypto js(使用angular cli创建),angular,cryptojs,Angular,Cryptojs,我正在尝试在angular2项目中导入crypto js 我也回答了几个SO问题,但最后还是出现了一个错误,找不到模块“crypto js” 我尝试的是: npm安装crypto js——保存 及 typings安装dt~crypto js--global--save 然后我修改了文件angularcli build.js var Angular2App = require('angular-cli/lib/broccoli/angular2-app'); module.exports = f

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

我也回答了几个SO问题,但最后还是出现了一个错误,找不到模块“crypto js”

我尝试的是:

npm安装crypto js——保存

typings安装dt~crypto js--global--save

然后我修改了文件angularcli 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)'
    ]
  });
};
const map: any = {
    'crypto-js': 'vendor/crypto-js'
};

/** User packages configuration. */
const packages: any = {
    'crypto-js': {
        format: 'cjs'
    }
};
文件src/system config.ts

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)'
    ]
  });
};
const map: any = {
    'crypto-js': 'vendor/crypto-js'
};

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

import*作为来自“crypto js”的CryptoJS

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


谢谢

好的,我知道了。我只需在typings/crypto js/中下载该文件,然后在导入CryptoJS之前添加行
//

这可能会帮助您:


然后:


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

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 service
时告知您的应用程序不要将加密库绑定到浏览器

在安装cryto js&@types/crypto js之后,在angular-cli.json文件中添加脚本路径

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

那个链接不起作用。。。我使用并添加了:node_modules/crypto-js中的文件,然后在我的类上导入了:import*作为来自“../../../node_modules/crypto-js”的CryptoJS,我使用了SHA3,我发现:
import{SHA3}来自“crypto-js”
使dist.js比'crypto js/SHA3'中的
import*作为SHA3有点胖。大约100KB。我不知道为什么。检查这个例子
"scripts": [
    "../node_modules/crypto-js/crypto-js.js"
]