2016-09-09 18 views
5

Pracuję nad Angular 2 RC-6 z Angular2 Documentation. Atom jest zbyt wolny, aby skompilować pliki ".ts". Jeśli przeniesię mój tsconfig.json z folderu głównego do dowolnego innego katalogu, kompiluje się szybko, ale pomija niektóre DI, takie jak "rxjs/add/operator/toPromise".Atom zajmuje dużo czasu, aby skompilować pliki maszynopisów dla kątowych 2

Proszę zasugerować, jak szybko wykonać kompilację atomu lub jakąkolwiek modyfikację na tsconfig.json.

Moja struktura katalogów projektu jest zgodna z instrukcją w dokumentacji.

Oto mój plik tscongig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    } 
} 
+2

Jest wielce prawdopodobne, że maszynopis próbuje szukać zbyt głęboko w niektórych folderach szukać 'plików .ts'. Spróbuj jawnie dołączać pliki lub używając pola 'exclude' w' tsconfig.json'. Jeśli używasz TypeScript 2, istnieje również pole 'include', którego możesz użyć. –

+0

dzięki, teraz jest dość szybko. – SSS

+1

Jako heads up, w 2.0 myślę, że domyślnie będziemy wykluczać 'node_modules'. –

Odpowiedz

10

Podobnie jak Daniel powiedział, że wystarczy, aby wykluczyć kilka folderów. Głównie folder node_modules, ponieważ istnieje tam mnóstwo plików TypeScript i Javascript.

Można to zrobić poprzez dodanie następującego exclude opcję do swojej tsconfig.json:

"exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
] 

dodanie tego do aktualnej konfiguracji będzie wyglądać następująco:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "commonjs", 
     "moduleResolution": "node", 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "removeComments": false, 
     "noImplicitAny": false 
    }, 
    "exclude": [ 
     "node_modules", 
     "typings/main", 
     "typings/main.d.ts" 
    ] 
} 
+2

** Dzięki! ** To znacznie poprawiło * szybkość przetwarzania *. Jestem zaskoczony, że * Angular Tooling * jest nadal dostępny, nawet jeśli pliki są * wyłączone *. Czy wiesz, jak/dlaczego to jest możliwe? – Akash

+0

Niestety to łamie mi kompilator. Atom 1.12.9, Atom-Typescript 10.1.13 – spryce

+0

również chciał zwrócić uwagę, że wyłączenie tego typu spowoduje usunięcie typowania. więc upewnij się, że dodajesz "! node_modules/@ types" do tego – Handonam

1

Dodaję to tutaj na wypadek, gdyby ktoś inny miał taki sam problem jak ja.

Próbowałem wyłączyć folder node_modules, jak zasugerowano w odpowiedzi rinukkusu, ale to skończyło się na całkowitym złamaniu kompilatora (Atom 1.12.9, Atom-Typescript 10.1.13).

Po pewnym pociągnięciu za włosy dodałem opcję , obejmującą, aby zobaczyć, co się stanie. Model documentation nie mówi, że oba są wymagane, ale wydaje się, że problem został rozwiązany.

Więc w moim przypadku config będzie wyglądać następująco:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "commonjs", 
     "moduleResolution": "node", 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "removeComments": false, 
     "noImplicitAny": false 
    }, 
    "include": [ 
     "app/**/*" 
    ], 
    "exclude": [ 
     "node_modules", 
     "typings/main", 
     "typings/main.d.ts" 
    ] 
} 
Powiązane problemy