【问题标题】:SpaTemplate angular - Publish to Azure - Error: Cannot find module 'aspnet-webpack'SpaTemplate 角度 - 发布到 Azure - 错误:找不到模块“aspnet-webpack”
【发布时间】:2017-04-15 15:20:48
【问题描述】:

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

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

异常:调用 Node 模块失败并出现错误:Webpack 开发中间件因加载“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 新角度

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

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

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

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

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

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

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

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

    或者,您可以将热模块替换注释掉。

    【讨论】:

    • 这对我有帮助。谢谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2022-11-22
      • 2016-09-29
      相关资源
      最近更新 更多