node.js - AggregateException : One or more errors occurred.(发生一个或多个错误。(无法启动 'npm'。要解决此问题:

标签 node.js visual-studio docker npm asp.net-core

带有 docker 的 Mac 上的 Visual Studio 遇到很多错误,变得很沮丧。我,在 asp.net core 2.1 上有一个项目,docker 图像上的角度为 6。当项目成功构建但无法运行时,下面是详细信息:

处理请求时发生未处理的异常。 AggregateException:发生一个或多个错误。 (发生一个或多个错误。(无法启动“npm”。要解决此问题:。 1确保“npm”已安装并且可以在 PATH 目录之一中找到。 当前 PATH 环境变量是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 确保可执行文件位于这些目录之一中,或者更新您的 PATH。 2有关原因的更多详细信息,请参阅 InnerException。)) System.Threading.Tasks.Task.GetResultCore(bool waitCompletionNotification) InvalidOperationException:无法启动“npm”。要解决这个问题: 1确保“npm”已安装并且可以在 PATH 目录之一中找到。 当前 PATH 环境变量是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 确保可执行文件位于这些目录之一中,或者更新您的 PATH。 2有关原因的更多详细信息,请参阅 InnerException。 Microsoft.AspNetCore.NodeServices.Npm.NpmScriptRunner.LaunchNodeProcess(ProcessStartInfo startInfo)

info for details

added more image

services.AddNodeServices(options =>
            {
                options.ProjectPath = "/Library/Frameworks/Mono.framework/Commands:/Applications/Visual Studio.app/Contents/Resources:/Applications/Visual Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/usr/local/bin/";
            });

这是docker文件信息

FROM microsoft/dotnet:2.1-sdk AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY MeroRentalDev.sln ./
COPY WebApp/WebApp.csproj WebApp/
RUN dotnet restore -nowarn:msb3202,nu1503
COPY . .
WORKDIR /src/WebApp
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApp.dll"]

尝试了很多链接的解决方案,但无法解决 System Aggregation Exception : Failed to start Node Process

Microsoft.AspNetCore.NodeServices: Failed to start node process

https://github.com/aspnet/JavaScriptServices/issues/227

https://github.com/aspnet/JavaScriptServices/issues/707

最佳答案

终于解决了这个问题。此问题是由于 node.js 未安装在 asp.net core 2.1 docker 镜像上。

所以在docker容器中安装node js

# Setup NodeJs
RUN apt-get update && \
    apt-get install -y wget && \
    apt-get install -y gnupg2 && \
    wget -qO- https://deb.nodesource.com/setup_8.x | bash - && \
    apt-get install -y build-essential nodejs
# End setup

在修改和更改 Node 版本值之前检查 Node 的版本。在我的例子中,我有 8.11.3 所以 setup_8.x

完整的 docker 文件

FROM microsoft/dotnet:2.1-sdk AS base

    # Setup NodeJs
    RUN apt-get update && \
        apt-get install -y wget && \
        apt-get install -y gnupg2 && \
        wget -qO- https://deb.nodesource.com/setup_8.x | bash - && \
        apt-get install -y build-essential nodejs
    # End setup
    WORKDIR /app
    EXPOSE 80

    FROM microsoft/dotnet:2.1-sdk AS build
    WORKDIR /src
    COPY MeroRentalDev.sln ./
    COPY WebApp/WebApp.csproj WebApp/
    RUN dotnet restore -nowarn:msb3202,nu1503
    COPY . .
    WORKDIR /src/WebApp
    RUN dotnet build -c Release -o /app

    FROM build AS publish
    RUN dotnet publish -c Release -o /app

    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "WebApp.dll"]

来源 - https://github.com/aspnet/Announcements/issues/298 Configuring Dockerfile for an ASP.NET Core 2.1 Angular Project

关于node.js - AggregateException : One or more errors occurred.(发生一个或多个错误。(无法启动 'npm'。要解决此问题:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50859193/

相关文章:

.net - 从 VSIX 安装程序包运行 shell 命令或可执行文件?

asp.net - 无法为 .net 安装 "LemmatizerPrebuiltCompact"库 - Visual Studio 错误

具有复杂类型的 Node.js SOAP 调用

javascript - 难道js断言是错误的?

javascript - 添加元数据以表达路线

node.js - 从 Electron 应用程序内部导出 sqlite3 db 文件。这可能吗?

visual-studio-2010 - Resharper 与 Coderush - 2010 重制版

docker - 我可以暂停/恢复 docker 容器吗?

.net - 使用 .NET 3.5 和 4.8 SDK 构建 Docker 容器?

Docker 命名空间、virtualbox 上的 docker、镜像环境