2017-05-15 10 views
0

나는 재사용 가능한 구성 요소를 분리하기 위해 공유 모난 2 모듈을 만들었습니다. 모든 오류 PFB, 미세하지만 AOT를 구축하는 동안 다음 오류가 작동aot를 구축하는 동안 공유 모서리 2 모듈 던져 오류

Error encountered resolving symbol values statically. Calling function 'makeDecorator', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol Injectable in D:/Shared_Module/node_modules/@angular/core/src/di/metadata.d.ts, resolving symbol OpaqueToken in D:/ Shared_ Module/node_modules/@angular/core/src/di/opaque_token.d.ts, resolving symbol OpaqueToken in D:/Shared_ Module/node_modules/@angular/core/src/di/opaque_token.d.ts 

PFB 샘플 코드 및

다음
Base_Module 
------------------ 
| 
|___module.ts @NgModule 
| 
|___components 
| 
|___node_modules 
| 
|___package.json 
| 
|___tsconfig.json 

Shared_Module 
------------------ 
| 
|___module.ts @NgModule 
| 
|___components -> Shared_Components 
| 
|___node_modules 
| 
|___package.json 
| 
|___tsconfig.json 

이 자료 모듈에서 module.ts입니다 코드 구조

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { Shared_Module } from './../../../../SharedModule/module'; --**Including the shared module here** 

@NgModule({ 
    declarations: [ 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    SharedModule -- **New shared module** 
    ], 
    exports: [], 
    bootstrap: [] 
}) 

export class Base_Module { } 

다음은 공유 모듈의 module.ts입니다.

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

@NgModule({ 
    declarations: [ 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule 
    ], 
    exports: [Shared_Component], 
    bootstrap: [] 
}) 

export class Shared_Module { } 

여기 애플리케이션이 정상적으로 작동되는 tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "es2015", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es2015", "dom"], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    }, 

    "files": [ 
    "src/app/module.ts", 
    "src/main.ts" 
    ], 

    "angularCompilerOptions": { 
    "genDir": "aot", 
    "skipMetadataEmit" : true 
} 
} 

이다. 컴파일이 잘못되었을 수 있습니다. 모든 도움을 환영합니다. 미리 감사드립니다!

답변

0

먼저 CommonModule을 가져와야하며 BrowserModule이 아니어야합니다 (공유 모듈에 있음).

는 여기를 참조하십시오 :

https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-browser-vs-common-module

둘째, OpaqueToken이되지 않습니다 : 대신

https://angular.io/docs/ts/latest/api/core/index/OpaqueToken-class.html

사용 InjectionToken :

https://angular.io/docs/ts/latest/api/core/index/InjectionToken-class.html

이러한 것이 도움이되는지 확인하십시오.

+0

BrowserModule 대신 CommonModule을 입력하면 작동하지 않습니다. – Prats

+0

네, 문제를 해결하지는 못했지만 링크 당 최고 성능의 앱을 사용하는 것이 가장 좋습니다. – chrispy

+0

@chrispy 동일한 오류가 발생하지만 정확한 문제가있는 파일의 위치와 파일을 찾을 수 없습니다. "OpaqueToken은 더 이상 사용되지 않습니다."라고 말했지만 OpaqueToken은 어디서 코드를 찾을 수 있습니까? – mohit