2

問題:在Web瀏覽器刷新並顯示更改之前,對我的Angular2項目Typescript文件進行任何更改(包括僅添加一個空格)需要將近3分鐘的時間來「重新編譯」。這會使整體發展速度放緩。Angular2'重新編譯'緩慢。 Visual Studio 2015. Task-Runner。 Typescript

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 

回答

1

仔細檢查您是否在項目中正確設置了「排除」目錄。我的猜測是Visual Studio正在嘗試將所有內容進行傳輸。

您應該在您的Typescript目錄中有一個tsconfig.json文件。它應該看起來像這樣:

{ 
    "compilerOptions": { 
    "noImplicitAny": false, 
    "noEmitOnError": true, 
    "removeComments": false, 
    "sourceMap": false, 
    "target": "es5", 
    "module": "commonjs", 
    "outDir": "../wwwroot/app/", 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true 
    }, 
    "exclude": [ 
    "node_modules", 
    "wwwroot" 
    ] 
} 

此外,請注意,outDir是排除的目錄之一。

+0

謝謝!這解決了這個問題。 – Karsten

相關問題