2016-07-01 22 views
9

Nasz projekt wykorzystuje opcję Webpack resolve.root do importowania modułów z absolutnymi ścieżkami. (unikając czegoś takiego jak ../../../module)
W swoim obecnym stanie projekt używa babel-loader, który działa idealnie dobrze.
Moim zadaniem jest migracja aplikacji do Angular 2.
W tej chwili przechodzę do TypeScript.
Jakoś wydaje się, że ts-loader nie działa w połączeniu z opcją resolve.root konfiguracji webpacka.Webpack resolve.root i loader TypeScript

Przykład webpack.config.js

resolve: { 
    root: [ 
     path.resolve('./node_modules'), 
     path.resolve('./app'), 
     path.resolve('./app/lib'), 
    ] 
}, 

Przykład importu modułu
import AbstractListState from 'states/abstract_list_state';

Katalog states jest wewnątrz katalogu app/lib.

Błąd podczas wykonywania webpack

ERROR in ./app/mainViews/panel/panel.controller.ts 
Module not found: Error: Cannot resolve module 'states/abstract_list_state' in C:\Users\...\Project\app\mainViews\panel 
@ ./app/mainViews/panel/panel.controller.ts 4:28-65 
+2

Patrz: https://github.com/ Microsoft/TypeScript/issues/5039. Sposób na zrobienie tego z plikiem 'tsconfig.json' zostanie zaimplementowany w TypeScript 2. Wydaje się, że możesz go już dzisiaj przetestować za pomocą' maszynopis @ next'. – Blackus

Odpowiedz

2

Pre wersja 2.0 maszynopis spróbuje załadować moduły bezwzględną ścieżkę z katalogu node_modules. Wynika to z tego, że wynik modułu TypeScript jest domyślnie ustawiony na "węzeł". Co oznacza, że ​​działa tak jak metoda wymagająca węzła. Tak więc, nawet jeśli używasz WebPacka do budowy aplikacji, TypeScript (i jego kompilator) nadal będzie chciał załadować pliki.

W celu umożliwienia importu modułów WWW z bezwzględną ścieżką, należy wrócić i użyć metody require. W ten sposób TypeScript pozwoli na importowanie materiałów do pakowania. Ale oczywiście nie dostaniesz żadnego typu wnioskowania, autouzupełnianie ...

Albo zaktualizować do wersji beta maszynopis 2.0 i spróbuj tego: https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#module-resolution-enhancements-baseurl-path-mapping-rootdirs-and-tracing

Powiązane problemy