Reputation: 21
Issue: Making any changes (including just adding a space) to my Angular2 project Typescript files takes almost 3 minutes to 'recompile' before the Web Browser refreshes and the changes are shown. This slows overall develop to a crawl.
Background:
Using Visual Studio 2015 running on Amazon WorkSpace with 2 cores and 8GB of memory.
Using Task Runner Explorer (start from package.json).
Created a dummy project with source code from
angular.io (Heros project).
todomvc.com (ToDo list).
and dummy Test component.
This is a tiny project, but still takes almost 3 minutes to 'recompile'. Below is the Task Runner log showing that it takes almost 3 minutes to 'recompile' even though i only added a single space to heroes.component.ts file.
By comparison, I have an asp.net project on the same machine (vb.net) with hundreds of files and it compiles in seconds.
I tried disabling Trend Micro real time virus scanner but that didn't seem to have any effect.
Question: Is this normal behavior?! How can I get this running fast?
[0] 13:11:07 - File change detected. Starting incremental compilation...
[1] [BS] File changed: app\dashboard.component.js
[1] [BS] File changed: app\hero-detail.component.js
[1] [BS] File changed: app\todo.store.js
[1] [BS] File changed: app\todo.component.js
[0] 13:11:17 - Compilation complete. Watching for file changes.
[1] [BS] File changed: app\test.component.js
[1] [BS] File changed: app\app.component.js
[1] [BS] File changed: app\main.js
[1] 16.02.29 13:11:07 304 GET /index.html
[1] 16.02.29 13:11:10 304 GET /styles.css
[1] 16.02.29 13:11:14 304 GET /app/main.ts
[1] [BS] File changed: app\hero.js
[1] [BS] File changed: app\mock-heroes.js
[1] [BS] File changed: app\hero.service.js
[1] [BS] File changed: app\dashboard.component.js
[1] [BS] File changed: app\hero-detail.component.js
[1] [BS] File changed: app\heroes.component.js
[1] 16.02.29 13:11:20 304 GET /app/app.component.ts
[1] [BS] File changed: app\todo.component.js
[1] [BS] File changed: app\todo.store.js
[1] [BS] File changed: app\test.component.js
[1] [BS] File changed: app\app.component.js
[1] [BS] File changed: app\main.js
[1] 16.02.29 13:11:23 304 GET /app/hero.service.ts
[1] 16.02.29 13:11:23 304 GET /app/dashboard.component.ts
[1] 16.02.29 13:11:24 304 GET /app/hero-detail.component.ts
[1] 16.02.29 13:11:24 304 GET /app/todo.component.ts
[1] 16.02.29 13:11:24 304 GET /app/todo.store.ts
[1] 16.02.29 13:11:26 304 GET /index.html
[1] 16.02.29 13:11:27 304 GET /app/test.component.ts
[1] 16.02.29 13:11:27 304 GET /app/mock-heroes.ts
[1] 16.02.29 13:11:29 304 GET /styles.css
[1] 16.02.29 13:11:33 304 GET /app/main.ts
[1] 16.02.29 13:11:38 304 GET /app/app.component.ts
[1] 16.02.29 13:12:25 304 GET /app/hero.service.ts
[1] 16.02.29 13:12:25 304 GET /app/dashboard.component.ts
[1] 16.02.29 13:12:27 304 GET /app/hero-detail.component.ts
[1] 16.02.29 13:12:27 304 GET /app/todo.component.ts
[1] 16.02.29 13:12:43 304 GET /app/todo.store.ts
[1] 16.02.29 13:12:44 200 GET /app/heroes.component.ts
[1] 16.02.29 13:12:45 200 GET /app/test.component.ts
[1] 16.02.29 13:12:46 200 GET /app/mock-heroes.ts
[1] 16.02.29 13:13:11 304 GET /app/app.component.css
[1] 16.02.29 13:13:45 304 GET /app/dashboard.component.html
[1] 16.02.29 13:13:58 304 GET /app/dashboard.component.css
Upvotes: 2
Views: 697
Reputation: 6986
Double check that you have set up the 'exclude' directories correctly in your project. My guess is Visual Studio is trying to transpile everything.
You should have a tsconfig.json file located in your Typescript directory. It should look something like this:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": false,
"target": "es5",
"module": "commonjs",
"outDir": "../wwwroot/app/",
"experimentalDecorators": true,
"emitDecoratorMetadata": true
},
"exclude": [
"node_modules",
"wwwroot"
]
}
Also, notice that the outDir is one of the excluded directories.
Upvotes: 1