Angular 2 Corrent导入模块的方法

时间:2016-06-01 17:00:38

标签: angular

我正在尝试导入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

1 个答案:

答案 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'
};