SpaTemplate angular - 发布到Azure - 错误:找不到模块'aspnet-webpack'

时间:2017-04-15 15:20:49

标签: asp.net-core

我使用asp.net核心角度spatemplate。该项目在我的本地计算机上运行没有问题。但是,当我将它发布到azure时,我遇到了内部服务器错误。

在azure门户中将aspnetcore_environment设置为开发后,我可以看到错误:

  

异常:调用Node模块失败并显示错误:Webpack dev中间件因加载'aspnet-webpack'时出错而失败。错误是:错误:找不到模块'aspnet-webpack'

我在这里找到了一些提示https://github.com/sgbj/generator-aspnetcore-angular2/issues/23

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

我是Web开发的新手,我不知道如何将缺少的依赖项添加到proj文件中。而且我不确定这是否真的是问题,因为我在网上https://channel9.msdn.com/events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103关注的样本没有在这方面设置任何东西。

如果我用

创建一个普通的新项目
  

dotnet new angular

我发布它一切正常没有任何问题?!所以我觉得我在解决方案中摧毁了一些东西?!有什么想法吗?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在Startup.cs中,你可能在Configure()方法中有以下内容:

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

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

" env.IsDevelopment()"将在您的PC上检查环境变量= ASPNETCORE_ENVIRONMENT =开发

在应用服务中,添加如下设置:

enter image description here

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