【问题标题】:How do I build a node project during a visual studio build, separately from a C# project?如何在 Visual Studio 构建期间构建节点项目,与 C# 项目分开?
【发布时间】:2021-11-02 06:25:46
【问题描述】:

Visual Studio 2019 附带用于 .net Core 应用的单页应用模板。 React typescript 模板设置项目如下:

  • Project/Project.sln 中创建解决方案
  • Project/WebApi/WebApi.csproj 中创建一个 ASP.NET Core REST 端点示例
  • Project/WebApi/ClientApp 文件夹中包含一个单页应用程序。
  • 构建该项目作为构建该项目其余部分的一部分。

我也想这样做,但不是将节点项目嵌入到 C# 项目文件夹中,而是让它们成为同一解决方案中的单独项目。所以而不是:

* Project/Project.sln
* Project/WebApi/Startup.cs // and all other C# code
* Project/WebApi/ClientApp/package.json // and all other node/typescript code

我宁愿像这样设置项目:

* Project/Project.sln
* Project/WebApi/Startup.cs // and all other C# code
* Project/ClientApp/package.json // and all other node/typescript code.

将节点项目从 C# 项目中分离出来并仍然将其作为解决方案构建的一部分进行所有构建的最佳方法是什么?

奖励:我如何仅使用 dotnet 命令执行此操作?

【问题讨论】:

    标签: c# node.js .net-core build


    【解决方案1】:

    如何实现这一点的基本思想涉及两件事:

    1. 您必须能够从位于单独项目中的 node_modules 提供静态内容(或前端库)
    2. 每次构建项目时,都应触发npm install,以确保所有前端依赖项均已到位。

    为了能够从 node_modules 提供服务,您要么必须自己修改 UseStaticFiles() 中间件,要么使用 OdeToCode.UseNodeModules 并对其进行调整,以使路径指向不同项目中的文件夹。 最后,可以在 .csproj 文件中设置自动构建后操作。示例:

      <Target Name="PostBuild" AfterTargets="ComputeFilesToPublish">
        <Exec Command="npm install"/>
      </Target>
    

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2015-07-08
      • 1970-01-01
      • 2018-06-02
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多