5

我有一個ASP.NET Core項目,它還使用TypeScript/SASS託管Aurelia CLI項目。 IDE是Visual Studio 2015.如何使用Aurelia CLI/ASP.NET Core優化單個項目的工作流程

當項目由Visual Studio或MSBuild構建時,au build命令在預編譯目標中執行,所以當我使用F5從Visual Studio構建或運行ASP.NET Core項目時, Aurelia CLI還將爲Aurelia應用程序構建資源並將其捆綁到wwwroot中。

此工作流程確保所有解決方案更改都能正確構建,並且還確保.NET Core作爲Web服務器運行,但是對開發人員來說運行緩慢,因爲前端代碼(HTML,SASS,或TS)需要進行完整的Aurelia應用程序的重新編譯/捆綁。

最近對Aurelia CLI(0.25+)的更改加快了前端構建的步伐,這非常棒,但它仍然不是最佳選擇。我不能使用au run --watch,因爲它不運行.NET Core服務器。

我正在尋找關於如何優化此配置的開發人員工作流程的指導 - 理想情況下,打F5應該像目前一樣工作,但是除了在Aurelia中激活手錶外,以便任何更改觀看的文件將觸發Aurelia中的增量構建,從而直接更新瀏覽器。

+0

爲什麼prepublish不執行它,而不是「金build命令在預編譯目標所執行的」?因此,開發人員可以手動運行一次(即將一攬子任務捆綁到清除觸發器或打開解決方案)。通過這種方式,它不會在重新生成文件時重建它,只需更改文件並按F5 – Tseng

回答

3

我們幾乎只使用au run --watch,但我們仍然可以通過VS中的F5運行應用程序,就像您期望的那樣。我們並不在乎運行命令是否實際爲文件提供服務(如果在構建命令中有一個監視標誌,我們將使用au build --watch代替)。我們在第一次打開項目時自動啓動手錶,然後我們可以使用我們在gulp文件中定義的任務(參見下文)和Task Runner Explorer窗口(我不需要)全天工作來手動停止/重新啓動它打開一個控制檯)。這樣我只需要在實際更改服務器端代碼時重新編譯服務器端代碼。

我們沒有設置瀏覽器同步,所以這不會自動刷新瀏覽器,但我們很好 - 我沒有發現ctrl + R是一個很大的時間接收器。

我們在預發佈步驟中有「au build --env prod」以確保生成機器執行生產生成。

我們gulpfile.js:

var gulp = require('gulp'); 
var shell = require('gulp-shell'); 

gulp.task('build-dev', shell.task(['au build --env dev'])); 
gulp.task('watch', shell.task(['au run --watch'])); 
gulp.task('test', shell.task(['au test --watch'])); 
gulp.task('build-prod', shell.task(['au build --env prod'])); 
+0

我們有一個PR將'--watch'標誌添加到'au build',但它引發了問題,因此被關閉。我已經與Jedd Ahyoung聯繫,看看他是否可以更新該公關來解決問題並將其添加。 –

+0

感謝gulpfile,但我無法得到它的工作。我首先執行了'npm install gulp-shell --save-dev',然後運行'watch'任務產生了這個錯誤: '''錯誤:spawn au run --watch ENOENT at exports._errnoException(util.js: (內部/ child_process.js:344:16) 在nextTickCallbackWith2Args(node.js:474:9)處的Process.ChildProcess._handle.onexit(internal/child_process.js:178:32) at process._tickCallback(node.js:388:17) at Function.Module.runMain(module.js:431:11) at start(node.js:139:18) at node。js:999:3 ''' 任何想法? – Sam

+1

解決了這個問題 - http://stackoverflow.com/questions/35889975/gulp-task-failing-when-run-from-vs-2015-task-runner-explorer-but-not-from-comma是潛在的問題。 – Sam

相關問題