2016-07-08 3 views
-3

저는 Component의 소스 코드 또는 Angular 2의 클래스 나 인터페이스를 읽고 싶습니다. core/src 디렉토리에는 많은 서브 디렉토리가 있습니다. 그것을 찾는 빠르고 합리적인 방법이 있습니까?Component의 소스를 찾는 가장 빠른 방법은 무엇입니까?

+0

내부 Angular2 구성 요소에 대해 이야기하고 있습니까? 그런 다음 API 문서 https://angular.io/docs/ts/latest/api/ – martin

+0

을 참조하십시오. 감사합니다. Martin이지만 소스 코드가 아닌 문서입니다. – user1643352

답변

0

Angular2은 GitHub의 저장소가있어 그렇게 모든 각도 구현을 찾을 수있는 오픈 소스 angular.io 페이지 하단에는 저장소 정의 및 구현에 대한 링크가 있습니다.

enter image description here

+0

예, 알았지 만, 특정 코드를 찾는 방법 (예 : Component 데코레이터가 들어있는 파일)? – user1643352

+0

각 문서 페이지의 맨 아래에는 특정 클래스를 각도 저장소에서 내보내는 링크가 있습니다. 그래서 당신이 원하는 것을 찾을 때까지 거기에서 시작하여 API를 사용할 수 있습니다. 또는 저장소 내의 github 검색 상자에서 검색하십시오. –

+0

업데이트 해 주셔서 감사합니다. 소스 코드를 찾는 좋은 방법입니다. – user1643352

0

실제로 Angular2는 하위 모듈을 하나의 큰 모듈로 수집 (다시 가져 오기)하는 "색인"모듈을 제공합니다. 나는 그것들을 살펴봄으로써 그들이 어떤 하위 모듈로부터 왔는지를 볼 수있을 것이다.

import {Injectable} from '@angular/core'; 

먼저 modules/@angular/core/index.ts를 보라 : 여기

는 샘플입니다. Injectable은 의존성 주입과 관련되어 있기 때문에, ./src/di는 일치해야합니다 : 당신은 다음 modules/@angular/core/src/di.ts에 모습을 가질 수

export * from './src/metadata'; 
export * from './src/util'; 
export * from './src/di'; // <---- 
export {createPlatform, assertPlatform, disposePlatform, getPlatform, coreBootstrap, coreLoadAndBootstrap, createNgZone, PlatformRef, ApplicationRef, enableProdMode, lockRunMode, isDevMode} from './src/application_ref'; 
export {APP_ID, APP_INITIALIZER, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER} from './src/application_tokens'; 

.

export {HostMetadata, InjectMetadata, InjectableMetadata, OptionalMetadata, SelfMetadata, SkipSelfMetadata} from './di/metadata'; 

export * from './di/decorators'; // <------ 

export {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref'; 

export {Injector} from './di/injector'; 
export {ReflectiveInjector} from './di/reflective_injector'; 
export {Binding, ProviderBuilder, bind, Provider, provide} from './di/provider'; 
export {ResolvedReflectiveBinding, ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './di/reflective_provider'; 
export {ReflectiveKey} from './di/reflective_key'; 
export {NoProviderError, AbstractProviderError, CyclicDependencyError, InstantiationError, InvalidProviderError, NoAnnotationError, OutOfBoundsError} from './di/reflective_exceptions'; 
export {OpaqueToken} from './di/opaque_token'; 

그래서 당신은 이제 modules/@angular/core/src/di/decorators.ts 파일을 살펴 가질 수 있으며 해당 데코레이터가 표시됩니다 Injectable는 장식이기 때문에, ./di/decorators이 일치해야합니다. 당신이 JetBrains의 '웹 IDE "WebStorm"를 사용하는 경우

export var Injectable: InjectableMetadataFactory = 
<InjectableMetadataFactory>makeDecorator(InjectableMetadata); 
+0

감사합니다. Thierry. 소스 코드를 쉽게 찾을 수있는 방법이 없습니까? Java 소스 코드 (Angular를 사용하는 새로운 기능)와 비교하면 약간 복잡합니다.당신의 설명에도 불구하고, 내가 찾고있는 것을 찾기가 어려울 지 모르지만, 아마도 TypeScript에 대한 충분한 경험이 없기 때문일 것입니다. – user1643352

0

당신은 ctrl + click 구성 요소 클래스 이름에 그것은 선언에 당신을 데려 갈 것입니다 수 있습니다. 이렇게하면 한 구성 요소에서 다른 구성 요소로 빠르게 탐색 할 수 있습니다. https://github.com/angular/angular

업데이트

모든 클래스 나 메소드가 볼을 내 보낸 정확한 위치를 알고 :

https://www.jetbrains.com/webstorm/

+0

감사합니다. 당신의 대답 후에, 저는 WebStorm을 가지고 있습니다. WebStorm (선택할 프로젝트 유형)으로 Angular2 프로젝트를 작성하는 방법을 알기위한 좋은 링크가 있습니까? – user1643352

+0

[링크] (https://egghead.io/technologies/angular2)의 Angular2 튜토리얼 중 많은 부분이 웹 스톰을 사용하며 단순함을 즐겼습니다. –

0

나는 단지 관련 게시물에 대한 답을 발견했다 : Finding Angular2 class source code 내 질문을하기 전에 발견하지 않았습니다 :

나는 API 참조를 건의 할 것입니다. 대부분의 수업은 여러 곳의 조각들로 구성되어 있습니다. docs에있는 모든 객체의 맨 아래에는 구성 요소의 @ angular/core/src/metadata.ts (76 행)에 정의 된 @ angle/core/index에서 내보낼 수있는 좋은 시작점이 될 수있는 행이 있습니다.

나는 클래스를 포함하고있는 파일을 찾는 가장 빠른 방법이라고 생각합니다. 아마도 마틴은 이것에 대해 생각했지만 문서의 페이지에서 결론을 알리지는 못했습니다. 선언을 내보내는 파일을 제공합니다.

관련 문제