2016-09-22 4 views
3

그래서이 트릭을 사용하여 __moduleName을 사용하면 systemjs가 현재 위치를 알 수 있고 전체 폴더 경로를 지정할 필요가 없습니다. 이미 __moduleName를 선언ReferrenceError : __moduleName이 정의되지 않았습니다. 각도 2

구성 요소

@Component({ 
    moduleId: __moduleName, 
    selector: 'app-customer', 
    templateUrl: 'customer.component.html' 
}) 

app.d.ts

declare var __moduleName: any; 

전역 변수가 될하지만 콘솔은 여전히 ​​referrence 오류를 말한다. 어떤 제안?

+0

같은 문제. 구형 angular2 데모에서 module.id 버전을 사용하는 보조 노트는 거의 작동하지만 자식의 부모 구성 요소를 계속 렌더링합니다. –

답변

1

이것은 transpilation을 등록하는 형식과 관련이 있습니다. 'system'은 모듈에 대한 상대 경로를 사용하기 위해 변수 __moduleName을 등록합니다. 이것은 각도 모듈 (노드 모듈 번들)이 아닌 노드 모듈 (js transpiled 파일)입니다. 또한 노드에는 'commonjs'형식 인 module.id을 사용하는 경우 사용할 수있는 기본값이 있습니다.

당신은 tsconfig.json의 설정을 확인할 수 있습니다

{ 
"compilerOptions": { 
    ... 
    "module": "amd | umd | system | commonjs | es6 | es2015 | none", 
    ... 
} 

}

https://www.typescriptlang.org/docs/handbook/compiler-options.html

관련 문제