2016-10-31 37 views
7

W naszym projekcie kątowym2 umieszczamy wszystkie pliki modeli ts w określonym folderze:/app/common/model/*. Mogę nazywać je w moich komponentach ścieżkami krewnymi, ale jest to bardzo pracochłonne. Więc 2 rozwiązania, najlepiej jest niestandardową ścieżką: StackOverflow: Relative Paths for SystemJS & ES module imports. Ale moje IDE nie może znaleźć ścieżki. Oto moja tsconfig:Ścieżka bezwzględna importu Angular2 lub ścieżka niestandardowa (maszynopis 2)

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true, 
    "outDir": "built", 
    "baseUrl": ".", 
    "paths": { 
     "mymodel/*": [ 
     "app/common/model/*" 
     ] 
    } 
    } 
} 

W mojej części: import { Address } from 'mymodel/address.model';

IDE: [ts] Nie można odnaleźć modułu .... Próbowałem z lub bez * w ścieżce

drugie rozwiązanie: Stackoverflow: Angular 2, imports between different folders

IDE i kompilacja są ok, z pełną ścieżką w składniku: import { Address } from 'common/model/address.model';

A tsconfig:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true, 
    "outDir": "built", 
    "baseUrl": ".", 
    "paths": { 
     "*": [ 
     "app/*", 
     "node_modules/*" 
     ] 
    } 
    } 
} 

Ale mamy 404 na stronie obciążenia dla wszystkich modeli. Może konfiguracja w pliku systemjs?

W obu przypadkach uważam, że problemem jest "outdir", a czegoś brakuje.

Wielkie dzięki za pomoc!

Pozdrawiam,

maszynopis: 2.0.6 kątowa: 2.0.0

+0

Z którego IDE korzystasz? W moim (IntelliJ/Webstorm) prawie nigdy nie wpisuję importu: IDE dodaje go dla mnie. –

+0

Kod Visual Studio. Czy w Twojej jest to absolutna ścieżka? – lginlap

+0

Pierwsze rozwiązanie działa wspaniale z innymi IDE ... Przepraszamy, to fałszywy problem – lginlap

Odpowiedz

2

Po walczą o poszukiwaniu przez internet n próbując zrozumieć, co dokładnie problemu i próbuje różnych opcji rozwiązywania problemów, poznałem baseURL i Ścieżka jak współpracuje

Uwaga: to rozwiązanie jest dla Kątowymi CLI 1.x. Nie wiesz o innym narzędziu,

Jeśli używasz baseUrl: "." jak poniżej to działa w VScode ale nie podczas kompilacji

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": ".", 
    "paths": { 
     "@myproject/*": ["src/app/*"] 
    }  
} 

Jak dotąd moje zrozumienie i moją aplikację do pracy i sprawdzone w kątowej kodu aio, sugeruję zastosowanie jako baseURL: „” src jak poniżej

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": "src", 
    "paths": { 
     "@myproject/*": ["app/*"], 
     "testing/*": ["testing/*"] 
    }  
} 

Dzięki podstawowemu adresowi URL jako źródłowi (katalog src), kompilator poprawnie rozpoznaje moduły.

Mam nadzieję, że pomoże to ludziom rozwiązać ten problem.