c# - Nuget 包 Microsoft.TypeScript.MSBuild 在 Dockerfile 中失败

标签 c# typescript docker asp.net-core nuget

我有一个包含多个 TypeScript 文件的 ASP.NET Core 项目。项目有Microsoft.TypeScript.MSBuild引用自动将这些 TS 文件编译为 JavaScript 文件。

  <ItemGroup>
    <PackageReference Include="Microsoft.TypeScript.MSBuild" Version="3.2.3" />
  </ItemGroup>

该设置一直有效,直到我尝试对我的项目进行 dockerize。当我关注 the example here ,出现错误:

/root/.nuget/packages/microsoft.typescript.msbuild/3.2.3/tools/Microsoft.TypeScript.targets(305,5): error MSB6003: The specified task executable "node" could not be run. No such file or directory [/app/MyProject.csproj] The command '/bin/sh -c dotnet publish -c Release -o out' returned a non-zero code: 1



如何解决问题?

最佳答案

在 Windows 上,Microsoft.TypeScript.MSBuild包括 tsc.exe。在非 Windows 平台上,例如在 Docker 容器中,Microsoft.TypeScript.MSBuild不包含 ts.exe,而是为 TypeScript 编译器输出到 Node。我认为官方的 dotnet/sdk Docker 镜像过去曾包含 Node,但它们不再包含 Node。您需要使用 dotnet-sdk 和 Node 制作或查找 Docker 镜像,或者配置一些涉及官方 Node 镜像的多阶段构建。

关于c# - Nuget 包 Microsoft.TypeScript.MSBuild 在 Dockerfile 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54007175/

相关文章:

d3.js - 用d3和typeScript绘制表格

node.js - 无服务器 Node TypeScript 应用程序无法导入模块

internet-explorer - 是否可以对 Internet Explorer 进行 docker 化?

docker - Docker DNS错误

postgresql - 为什么我在重建 docker 镜像时不会丢失 postgresql 数据?

c# - 将邮件编码为 : uri

node.js - 我的 typescript 编译器有什么问题? `tsc --version` 什么都不返回

c# - 在 Winform 应用程序的 App.config 中添加注释

c# - 在 OnModelCreating 中撤消 HasIndex

c# - 调用给定类型名称的静态函数