Javascript ASP.NET核心-运行多个angular 2应用程序
我在尝试使用ASP.NET内核运行多个angular 2应用程序时遇到了一些问题。我正在使用 具有预呈现功能的JavaScriptServices 在Visual Studio 2015模板中 我的解决方案的结构是 核心使用服务器端路由连接ASP.NET应用程序,每个客户端应用程序一旦绑定,就会复制到wwwroot中 这里的问题是预渲染功能,它出现了: 预渲染失败,原因是错误:错误:区域已加载 在第一次呈现ClientApp1后重新加载页面或尝试在ClientApp1和ClientApp2之间切换时,会发生这种情况 有人能帮我建议一下使用引导服务器和引导客户机风格运行多个Angular2应用程序的正确方法吗 如有任何示例/建议,将不胜感激Javascript ASP.NET核心-运行多个angular 2应用程序,javascript,node.js,angular,model-view-controller,asp.net-core,Javascript,Node.js,Angular,Model View Controller,Asp.net Core,我在尝试使用ASP.NET内核运行多个angular 2应用程序时遇到了一些问题。我正在使用 具有预呈现功能的JavaScriptServices 在Visual Studio 2015模板中 我的解决方案的结构是 核心使用服务器端路由连接ASP.NET应用程序,每个客户端应用程序一旦绑定,就会复制到wwwroot中 这里的问题是预渲染功能,它出现了: 预渲染失败,原因是错误:错误:区域已加载 在第一次呈现ClientApp1后重新加载页面或尝试在ClientApp1和ClientApp2之间切
这个问题也在github的中提出,我使用的方法似乎是在webpack配置中简单地定义多个入口点
const clientBundleConfig = {
entry: {
'front': './client/front/main.ts',
'admin': './client/admin/main.ts',
},
output: {
path: './www/dist',
filename: '[name].bundle.js'
}
...
}
现在,相关的angular应用程序front或admin将从单个HMR进程更新。我无法让它使用同一个dotnet服务器进程来处理单独的webpack config和HMR进程,我发现只有第一个应用程序会更新
更新
由于遇到的限制,我需要为应用程序执行单独的构建。我现在按照Stevesandersons的建议,为您链接到的Github问题中的每个应用程序调用UseWebpackDevMiddleware,他的建议中缺少的唯一一步是需要为每个应用程序指定唯一的端点:
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ConfigFile = "webpack.front.js",
HotModuleReplacementEndpoint = "/__webpack_hmr_front"
});
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ConfigFile = "webpack.admin.js",
HotModuleReplacementEndpoint = "/__webpack_hmr_admin"
});
我使用的方法似乎是在webpack配置中简单地定义多个入口点
const clientBundleConfig = {
entry: {
'front': './client/front/main.ts',
'admin': './client/admin/main.ts',
},
output: {
path: './www/dist',
filename: '[name].bundle.js'
}
...
}
现在,相关的angular应用程序front或admin将从单个HMR进程更新。我无法让它使用同一个dotnet服务器进程来处理单独的webpack config和HMR进程,我发现只有第一个应用程序会更新
更新
由于遇到的限制,我需要为应用程序执行单独的构建。我现在按照Stevesandersons的建议,为您链接到的Github问题中的每个应用程序调用UseWebpackDevMiddleware,他的建议中缺少的唯一一步是需要为每个应用程序指定唯一的端点:
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ConfigFile = "webpack.front.js",
HotModuleReplacementEndpoint = "/__webpack_hmr_front"
});
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ConfigFile = "webpack.admin.js",
HotModuleReplacementEndpoint = "/__webpack_hmr_admin"
});