2017-05-02 5 views
0

Angular 2.4.0, tsc 2.3.1을 사용하여 SystemJS를 로더로 사용하여 Angular2로 그래프를 그릴 때 JagJ/graphlib와 함께 Dagre를 사용하려고합니다.Dagre Angular2 SystemJS 모듈 로딩

http://www.daviddurman.com/automatic-graph-layout-with-jointjs-and-dagre.html

내가 var dagre = require('dagre');

내 Angular2 구성 요소가 JointJS에서 요구하는 브라우저에서 'dagre'개체를 얻을 방법을 알아낼 수 없습니다

import * as dagre from 'dagre';

내 SystemJS의 설정을 포함한다 :

(function() { 
    System.config({ 
    map: { 
     'dagre': '/static/libs/dagre/dagre.js' 
    } 
}); 
})(); 

Cannot read property 'layout' of undefined

// Executes the layout. 
dagre.layout(glGraph, { debugTiming: !!opt.debugTiming }); 

어쩌면이 라이브러리 자체를 내보내거나 내가의 형식을 지정해야하지에 문제가 : 그것은 dagre.layout를 호출하려고 할 때 JointJS에서 정의되지 않은 오류로 dagre 리드를로드 할 수 내 SystemJS 설정?

답변

0

그래서 나는이 고정 정확히 모르겠지만, 세 가지 않았다 :

1)

3) 형식을 추가

내 component.ts에서 npm install -D @types/dagre

2) import * as dagre from dagre;을 : 글로벌 SystemJS 구성에

(function() { 
    System.config({ 
    map: { 
     'lodash': '/static/libs/lodash/index.js', 
     'dagre': '/static/libs/dagre/dagre.js', 
     'graphlib': '/static/libs/graphlib/grpahlib.umd.js', 
    }, 
    meta: { 
     'dagre': { 
     format: 'global', 
     deps: ['lodash'], 
     }, 
     'graphlib': { 
     format: 'global', 
     deps: ['lodash'], 
     } 
    } 
}); 
})();