我有一个 ASP.NET Core 项目,它也使用 TypeScript/SASS 托管一个 Aurelia CLI 项目。 IDE 是 Visual Studio 2015。
当项目由 Visual Studio 或 MSBuild 构建时,au build
命令在预编译目标中执行,因此当我使用 F5 从 Visual Studio 构建或运行 ASP.NET Core 项目时,Aurelia CLI 将构建 Aurelia 应用程序的 Assets 并将其捆绑到 wwwroot
以及。
此工作流可确保正确构建任何解决方案更改,并确保 .NET Core 作为 Web 服务器运行,但是,对于开发人员来说速度很慢,因为对前端代码(HTML、SASS 或 TS)的任何更改都会导致还需要完全重新编译/捆绑 Aurelia 应用程序。
最近对 Aurelia CLI (0.25+) 的更改大大加快了前端构建的速度,这很棒,但仍然不是最佳的。
我不能用 au run --watch
因为它不运行 .NET Core 服务器。
我正在寻找有关如何优化此配置的开发人员工作流程的指南 - 理想情况下,按 F5 应该像当前一样工作,但还要在 Aurelia 中激活监视,以便对监视文件的任何更改都将触发Aurelia 中的增量构建,可直接更新浏览器。
最佳答案
我们使用 au run --watch
几乎完全可以,但我们仍然如您所料,在 VS 中通过 F5 运行该应用程序。我们不关心 run 命令实际上是否为文件提供服务(如果 build 命令上有监视标志,我们将使用 au build --watch
代替)。我们在项目第一次打开时自动启动 watch,然后我们可以手动停止/重新启动它,因为我们全天使用我们在 gulpfile 中定义的任务(见下文)和 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']));
关于visual-studio-2015 - 如何使用 Aurelia CLI/ASP.NET Core 优化单个项目的工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42969373/