在.NetCore 3.0中使用spa服务?


9

我使用ASP.Net Core React + Redux开发SPA Web应用程序。

更新到.Net Core 3.0之后,我发现UseWebpackDevMiddleware和AddNodeServices已过时。

我学习了新的项目模板React + Redux,但它没有使用webpack或SSR。

1)在哪里可以找到.Net Core 3.0中使用webpack的示例或工作信息?使用UseWebpackDevMiddleware真的很容易配置HMR和Webpack构建。

2)在哪里可以找到有关使用.Net 3.0 + React的SSR的示例或信息?

Answers:


4

我觉得我和你在同一条船上!!!自dotnetcore3正式发布以来,已经花了大约一周的时间,我一直在尝试使用SPA框架来启动并运行某些东西。

鉴于没有答案,我渴望运行SPA服务,因为aspnetcore3我研究了Visual Studio中提供的各种模板。目前,模板是AngularReact并且使用aspnetcore3

在此之前,有模板AngularReactAurelia。对我来说,Aurelia看起来很棒-香草打字稿绑定。所以我试图走那条路。

我设法使HMR(热模块更换)正常工作。我使用CLI构建了一个Aurelia项目。但是,我的项目有很多配置,我仍然在学习WebPack。HMR当前不适用于Aurelia CSS。

对于我的场景,我已经在VS Code中加载了客户端应用程序。我创建了一个aspnet核心项目,然后将其连接到webpack。

我知道您是在专门询问React,但概念可能是相同的。

一些代码

您可以在这里找到我的代码:

https://github.com/andez2000/spa-apps/tree/master/aurelia-cli/e1/aurelia-app

注意:目前,我只是将内容转储到此仓库中。如果您导航到顶层,则有从模板创建的项目。

用法

  1. 打开文件夹spa-apps\aurelia-cli\e1\aurelia-appVSCode
  2. 打开project.csprojVS2019
  3. 打开终端VSCode并运行,npm start -- --hmr然后等待输出完成。
  4. 在以下位置编译并运行解决方案 VS2019

这应该打开默认的浏览器并加载index.ejs。

注意事项

dotnet项目和aurelia项目中的端口号必须绑定。

启动文件

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseSpa(spa =>
    {

        if (env.IsDevelopment())
        {
            spa.UseProxyToSpaDevelopmentServer("http://localhost:5000");
        }
    });
}

aurelia.json

  "platform": {
    "hmr": false,
    "open": false,
    "port": 5000,
    "host": "localhost",
    "output": "wwwroot/dist"
  },

因此,也许这在概念上与React相同。由于某种原因,我的React模板无法连接到IIS Express-前一天它可以正常工作-因此无法真正进行挖掘。

对我来说,这个项目有很多活动内容。我希望我有一个最小的工作解决方案-包括webpack + scss +一些spa框架+ dotnetcore3。但是有大量的配置和大量文件。

其他连结

另外,可能值得检查此博客文章:

https://www.alexdresko.com/2019/07/09/htmlwebpackplugin-asp-net-core-3/

在此处阅读有关aurelia的更多信息:

https://aurelia.io/

希望有人会给您更好的答案-但这可能会让您前进。希望Microsoft将更新文档和示例,并为我们提供更好的指导。

dotnet模板更新(2020年4月)

我希望更新的模板可以克服webpack的aspnet核心/ dotnet核心差异。因此,希望这是引入新模板的情况。

看这里:

https://github.com/NetCoreTemplates/aurelia-spa

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.