2016-06-27 7 views
1

single node module을 각도 2로로드하면 angular-cli 부트 스트랩 된 프로젝트가 위키 내에서 잘 설명됩니다. 궁금한 점이 있다면, 어떻게 angular-cli로 부트 스트랩 된 프로젝트 내에 좀 더 복잡한 노드 모듈을로드 할 수 있을까요?각도 2 하위 종속성을 가진 타사 공급 업체 노드 모듈을로드하는 방법 angular-cli

예. angular2 - 아폴로는

내가

와 노드 모듈 인에게 system-config.jsangular-cli-build.js

var Angular2App = require('angular-cli/lib/broccoli/angular2-app'); 

module.exports = function(defaults) { 
    return new Angular2App(defaults, { 
    vendorNpmFiles: [ 
     '...', 
     'angular2-apollo/**' 
    ] 
    }); 
}; 

에 노드 모듈을 추가 등록 ..., 아폴로 클라이언트, graphql, lodash 같은 여러 하위 의존성에 의존

const barrels: string[] = [ 
    // ... 
    // Thirdparty barrels. 
    'rxjs', 
    'angular2-apollo', 

    // App specific barrels. 
    // ... 
]; 

// ... 

// Apply the CLI SystemJS configuration. 
System.config({ 
    map: { 
    '@angular': 'vendor/@angular', 
    'rxjs': 'vendor/rxjs', 
    'angular2-apollo':'vendor/angular2-apollo/build/src', 

    'main': 'main.js', 
    }, 
    packages: cliSystemConfigPackages 
}); 

그러나 이것은 angular2-apollo 만로드합니다. angular2-apollo의 하위 종속성이로드되지 않습니다. 각도 cli 부트 스트랩 프로젝트 내에서 system.js로 하위 종속성을로드하려면 어떻게해야합니까?

+0

'src/app/node_modules /'안에 그것을 옮기고 다른 TS 파일처럼 가져올 수 있습니다. – codef0rmer

+0

은 적절한 방법을 좋아하지 않습니다. – Manuel

답변

2

나는 system.config.ts에서 잘못 생각하고 있다고 생각합니다. 사용자 패키지 구성은이 파일의 상단 섹션에 있어야합니다.

const map: any = { 
    'angular2-apollo': 'vendor/angular2-apollo/build' 
}; 
/** User packages configuration. */ 
const packages: any = { 
    'angular2-apollo': { main: 'main.js', defaultExtension: 'js' }, 

}; 

도움이되는지 확인해보십시오.

+0

나중에 이것을 실현했습니다. 두 프로젝트 모두에서 하위 종속성을 가진 node_module을로드 할 수 없으므로 아무런 차이가 없기 때문에 :-( – Manuel

+0

내 프로젝트에 angular2-apollo도 통합되었습니다. 내 측면에는 아무런 문제가 없었습니다. –

+0

유성 또는 독립 실행 형 응용 프로그램이 있습니까? 아폴로 빌드가 최근에 아폴로 스택에 대한 불확실성으로 인해 추가 된 것 같습니다. 다음을 위해 Gona를 확인하십시오. – Manuel

5

그래서, 당신은 System.js와 정말 짜증나는 문제에 직면하고 여기에 각 CLI에 그것에 대해 개방 문제가 있습니다 : https://github.com/angular/angular-cli/issues/882

그것은 기본적으로 당신이 system.config.ts 파일의 모든 종속성을 지정해야 의미는 및

어쩌면 미래에 일어날 것이다 ... 내가 아는 끔찍한 .... angular-cli-build.js 파일에 모든로드 : 각 CLI 더 나은 될 것입니다 때까지, https://github.com/angular/angular-cli/issues/909

을하지만, 여기 스타터 응용 프로그램입니다 각도 2.0 및을 포함합니다. 모두210 의존성 (심지어 함께 모의 GraphQL 서버 ..)의 IT - https://github.com/Urigo/apollo-ship

당신은 system.config.ts 거기에 angular-cli-build.js을 확인할 수 있습니다 angular2-apollo, apollo-client, lodash는 (모든 원에 종속 관계를 포함하는 방법을 볼 수 그것들의 의존성), redux 그리고 많은 것 (너무 많은 ....)

+0

아폴로 우주선이 훌륭합니다! 가까운 장래에 Angular-CLI가 webpack을 지원합니다 –

+0

이 기능을 사용할 수없는 사람들을 위해 [해결책은 여기에 있습니다] (http://stackoverflow.com/questions/37717759/why-i-am-not-able-to- import-lodash-in-angular2]). – JesterXL

+0

@Urigo, 최근 빌드를 추가하여 angular2에 통합 했습니까? 다음날 체크 아웃 하겠지만, 지금은 꽤 바쁘다. 어쩌면 빌드 버전을로드하면서 아폴로 함과 anwser를 업데이트하고 싶습니까? – Manuel