2017-04-15 216 views
2

我使用的是asp.net核心角度spatemplate。该项目在我的本地机器上运行时没有问题。但是,当我将它发布到Azure时,会遇到内部服务器错误。SpaTemplate角度 - 发布到Azure - 错误:找不到模块'aspnet-webpack'

在蔚蓝的门户aspnetcore_environment设定发展后,我可以看到一个错误:

Exception: Call to Node module failed with error: Webpack dev middleware failed because of an error while loading 'aspnet-webpack'. Error was: Error: Cannot find module 'aspnet-webpack'

,我发现了一些线索这里https://github.com/sgbj/generator-aspnetcore-angular2/issues/23

基本上它说node_modules文件夹生产失踪环境。它描述了一种将它手动添加到project.json文件的方法。但没有创建这样的文件...它包含一个经典* .proj

我对网络开发非常新,我不知道如何将缺少的依赖项添加到proj文件。而且我不确定这是否是真正的问题,因为我在网络https://channel9.msdn.com/events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103上跟踪的示例没有在此方向上设置任何内容。

如果我创建

dotnet new angular

纯新项目,我发布它的一切工作正常,没有任何问题?所以我有这种感觉,我在解决方案中摧毁了一些东西?!任何想法?

我的问题是如何设置发布的node_modules?

回答

1

最后我找到了解决这个问题的方法。我删除了VS2017解决方案中的发布配置文件,并删除了Azure上的相关应用服务。在创建新的一切后,再次发布工作。我希望这将永远不会发生在生产中。

0

在Startup.cs你可能有以下配置()方法:

 if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions { 
       HotModuleReplacement = true 
      }); 
     } 

这使热模块更换用的WebPack。当您进行更改并保存文件时,webpack会自动重新编译角度应用程序,以便您的浏览器在不重新加载页面的情况下提取更改。发布时不需要此功能。

“env.IsDevelopment()” 将检查您的PC = ASPNETCORE_ENVIRONMENT =发展

在应用服务上的环境变量,添加应用程序设置如下图所示:

enter image description here

或者你可以评论热模块更换。