在 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"
]
我正在尝试在我的 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"
]