2016-09-09 1 views
5

Я работаю над угловым 2 RC-6 от Angular2 Documentation. Я слишком быстро нахожу атом, чтобы скомпилировать мои файлы .ts. Если я переведу свой tsconfig.json из корневой папки в любой другой каталог, он быстро компилируется, но пропускает некоторые DI, такие как 'rxjs/add/operator/toPromise'.Atom занимает много времени, чтобы скомпилировать файлы машинописных файлов для угловых 2

Пожалуйста, предложите, как быстро скомпилировать атом или любые изменения на tsconfig.json.

Структура моего проекта, как указано в документации.

Вот мой tscongig.json файл

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

Вполне вероятно, что машинопись пытается искать слишком глубоко в определенные папки для поиска '.ts' файлов. Попробуйте явно включить файлы или использовать поле 'exclude' в' tsconfig.json'. Если вы используете TypeScript 2, есть также поле 'include', которое вы можете использовать. –

+0

спасибо, сейчас довольно быстро. – SSS

+1

Как и выше, в 2.0, я считаю, что мы исключим 'node_modules' по умолчанию. –

ответ

10

Как Даниил сказал вам просто нужно исключить несколько папок. В основном папка node_modules, так как там есть файлы TypeScript и Javascript.

Вы можете сделать это, добавив следующий exclude вариант к вашему tsconfig.json:

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

Добавляя это в текущей конфигурации она будет выглядеть следующим образом:

{ 
    "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

** Спасибо! ** Это значительно улучшило скорость обработки *. Я удивлен, что * Angular Tooling * по-прежнему доступен, даже если файлы * исключены *. Вы знаете, как/почему это возможно? – Akash

+0

К сожалению, это нарушает компилятор для меня. Atom 1.12.9, Atom-Typcript 10.1.13 – spryce

+0

также хотел указать, что выполнение этого исключения приведет к удалению типирования. поэтому обязательно добавьте «! node_modules/@ types» к этому – Handonam

1

Я добавляю это здесь в случае, если у кого-то еще такая же проблема, как у меня.

Я попытался исключить node_modules папку, как это предлагается в ответ rinukkusu, но это в конечном итоге разорвать компилятор вообще (Atom 1.12.9, Atom-Машинопись 10.1.13).

После некоторого притягивания волос я добавил включите вариант, чтобы увидеть, что произойдет. В documentation конкретно не говорится, что оба они необходимы, но, похоже, это проблема.

Так что в моем случае конфигурация будет выглядеть следующим образом:

{ 
    "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" 
    ] 
}