我正在使用.net core和ServiceStack Angular SPA项目模板,并且想启用热重装。
根据我在网站here上看到的内容,我只需要添加:
Plugins.Add(new TemplatePagesFeature());
<i hidden>{{ '/js/hot-loader.js' | ifDebugIncludeScript }}</i>
并且:
SetConfig(new HostConfig
{
DebugMode = true
});
这适用于HTML文件,但是,当我修改TS文件(在控制台或浏览器中)时,没有任何反应,我是否需要配置其他内容以允许这样做?
编辑
我认为这也会开始类似npm run dev
(运行--aot
),但是看起来并不像那样,所以我的临时解决方案是使用类似这样的东西,直到找到更优雅的方式为止, shell extension:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.Shell("npm run dev");
}
答案 0 :(得分:2)
每个模板的开发工作流程可以在每个模板的项目页面上找到。例如。 Angular SPA Project Template要求您运行npm run dev
或npm run serve
来启动受监视的客户端构建:
我们在开发过程中的建议是运行dev
npm脚本或Gulp任务并使其在后台运行:
$ npm run dev
这最初会生成Web应用程序的完整开发版本,然后在后台运行以在文件更改时处理文件。这样一来,正常的开发人员工作流程就可以运行ASP.NET Web App,在本地保存更改,然后使用ServiceStack的内置热重载功能将其重新装载。或者,点击F5
将刷新页面并查看最新更改。
每次更改都会更新输出开发人员资源,因此即使您停止开发任务,您的Web应用程序仍将处于运行状态,在运行ASP.NET Web App时可见。
另一种开发人员工作流程是运行serve
npm或gulp脚本以运行Create React App的内置Webpack开发服务器:
$ npm run serve
这将启动侦听http://localhost:4200/
的Webpack开发服务器,并将其配置为将所有非Webpack HTTP请求代理到ASP.NET Web App,并在其中处理所有服务器API请求。通过Webpack开发服务器查看应用程序的好处是其内置的实时重新加载功能,该功能将在更新资源时自动重新加载页面。
.NET Core项目还可以通过使用dotnet watch从Live Coding中受益,该dotnet watch执行“监视的构建”,当它检测到源文件更改时,它将自动停止,重新编译并重新启动.NET Core App。您可以使用以下命令从命令行启动受监视的构建:
$ dotnet watch run