2016-12-24 5 views
2

비슷한 스택 오버 플로우를 읽었지만 알아낼 수 없었습니다. 나는 작은 걸음을 놓치고 있어야합니다.상대 경로. baseUrl 및 ionic2에서 작동하지 않는 경로 - angular2

{ 
    "compilerOptions": { 
    "allowSyntheticDefaultImports": true, 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ 
     "dom", 
     "es2015" 
    ], 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "target": "es5", 
    "baseUrl": ".", 
    "paths":{ 
     "*":[ 
     "src/app/*", 
     "node_modules/*" 
     ] 
    } 
    }, 
    "include": [ 
    "src/**/*.ts" 
    ], 
    "exclude": [ 
    "node_modules" 
    ], 
    "compileOnSave": false, 
    "atom": { 
    "rewriteTsconfig": false 
    } 
} 

내 폴더 구조가

같은 것입니다 :

import { Logger } from 'logging' 

대신 내 tsconfig은 다음과 같습니다

import { Logger } from '../../modules/logging' 

의 :

내 목표는 할 수있을 것입니다

src 
--- app 
------- logging 
--------------- index.ts (contains exports for the provider and the ngModule) 
--------------- logger.provider.ts (contains an injectable provider) 
--------------- logging.module.ts (contains the ngModule) 
--- app.module.ts 

지수는 기본적으로이 있습니다

export { LoggingModule } from './logging.module'; 
export { LoggerProvider } from './logger.provider'; 

은 물론 나는 구조에서 파일을 생략. app.module.ts는 내 '로그인'모듈을 가져 오기 위해 노력하는 항목 클래스입니다. Visual Studio 코드는 가져 오기에 대해 불평하지 않습니다.

//import { FIREBASE_CONFIG } from 'configs'; 
import { NgModule, ErrorHandler } from '@angular/core'; 
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; 
import { MyApp } from './app.component'; 
import { HomePage } from '../pages/home/home'; 
import { AngularFireModule } from "angularfire2"; 
import { LoggingModule } from 'logging'; 
import { PostsModule } from 'posts'; 

@NgModule({ 
    declarations: [ 
    MyApp, 
    HomePage 
    ], 
    imports: [ 
    IonicModule.forRoot(MyApp), 
    PostsModule, 
    LoggingModule 
    //AngularFireModule.initializeApp(FIREBASE_CONFIG), 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
    HomePage 
    ], 
    providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}] 
}) 
export class AppModule {} 

나는 VSC에 오류가 표시되지 않습니다 말했지만 내가 브라우저에서 응용 프로그램을 시작할 때 나는 질수록 :

Error: Cannot find module "logging" 
    at Object.<anonymous> (http://localhost:8100/build/main.js:82202:7) 
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30) 
    at Object.<anonymous> (http://localhost:8100/build/main.js:105047:70) 
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30) 
    at http://localhost:8100/build/main.js:66:18 
    at http://localhost:8100/build/main.js:69:10 
정말 긴 상대 경로로 후퇴하지 않으

왜냐하면 1) 지루하고 2) 리펙토링이 앱이 성장할 때 악몽이되기 때문입니다.

감사합니다.

+0

동일한 프로젝트에서 자신의 모듈을 가져 오려면 상대 URL을 사용해야합니다. 나는'package.json'에 열거 된 모듈이 될 npm으로부터 설치 되었다면 상대 URL없이 가져 왔을 뿐이다. – adriancarriger

+1

''app''에서''tsc --traceResolution''을 시도하십시오 – raj

+0

https://paste.ee/p/bXxZx – yafrack

답변

0

moduleResolutionnode으로 설정되어 있으면이 문제가 발생할 수 있습니다. classic으로 변경하고 해결되었는지 확인하십시오.

"compilerOptions": { 
    "moduleResolution": "classic" 

issue을 살펴보십시오. 희망이 오류를 해결합니다.

+0

안녕하세요. 감사. 나는 그 자신을 추가하지 않았다, 그것은 이온 설정의 일부이다. 것은 고전에 그것을 바꾸는 것은 모든 것을 어기는 것이다. 예 : 'Observable'이름을 찾을 수 없습니다. 'AngularFireDatabase'등을 찾을 수 없습니다. – yafrack

+0

path에 node_modules 폴더가 포함되어 있지 않습니까? – raj

+0

예 추가되었습니다. / – yafrack