我正在尝试导入this模块以启用oauth2。
我导入了这样的模块:
main.ts
import { OAuthService } from 'angular2-oauth2/oauth-service';
并在systemjs.config.js中:
var map = {
'app': 'app', // 'dist',
'@angular': 'node_modules/@angular',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs',
'angular2-oauth2': 'node_modules/angular2-oauth2'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': {main: 'main.js', defaultExtension: 'js'},
'rxjs': {defaultExtension: 'js'},
'angular2-in-memory-web-api': {defaultExtension: 'js'},
'angular2-oauth2': {defaultExtension: 'js'}
};
对我而言,这种方式似乎是正确的。但是,现在我得到了依赖项(sha256,js-base64,buffer,base64-js)缺失的错误。
...
zone.js:101 GET http://localhost:3000/base64-js 404 (Not Found)
zone.js:101 GET http://localhost:3000/sha256 404 (Not Found)
所以我尝试以相同的方式添加这些依赖项。这在技术上是有效的,但随后会询问依赖关系的依赖性。
所以,我想知道我是如何导入npm模块的,包括它们的依赖项。我认为并不意味着我列出了systemjs.config.js中的所有依赖项。
提前THX答案 0 :(得分:1)
因为angular2-oauth2依赖于其他模块:
├─┬ angular2-oauth2@1.3.8
│ ├── base64-js@0.0.8
│ ├─┬ buffer@3.6.0
│ │ ├── ieee754@1.1.6
│ │ └── isarray@1.0.0
│ ├── js-base64@2.1.9
│ └─┬ sha256@0.2.0
│ ├── convert-hex@0.1.0
│ └── convert-string@0.1.0
您还需要在SystemJS中配置它们:
var map = {
'app': 'app', // 'dist',
'@angular': 'node_modules/@angular',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs',
'angular2-oauth2': 'node_modules/angular2-oauth2',
'base64-js': 'node_modules/base64-js/lib/b64.js',
'sha256': 'node_modules/sha256/lib/sha256.js'
};