#c# #node.js #.net-core #build
Вопрос:
Visual Studio 2019 поставляется с одностраничными шаблонами приложений для приложений .net Core. Шаблон React typescript настраивает проект следующим образом:
- Создайте решение в
Project/Project.sln
- Создайте ASP.NET Пример конечной точки Core REST в
Project/WebApi/WebApi.csproj
- Содержит приложение с одной страницей в
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
помощью команды?
Ответ №1:
Основная идея, лежащая в основе того, как это может быть достигнуто, заключается в том, чтобы затронуть две вещи:
- Вы должны иметь возможность обслуживать статический контент (или интерфейсные библиотеки) из node_modules, которые будут расположены внутри отдельного проекта
- Каждый раз, когда вы создаете проект,
npm install
он должен запускаться, чтобы убедиться, что все интерфейсные зависимости на месте.
Чтобы иметь возможность обслуживать из node_modules, вам необходимо либо самостоятельно изменить промежуточное программное обеспечение UseStaticFiles (), либо использовать OdeToCode.Используйте модули и настройте его так, чтобы путь указывал на папку внутри другого проекта. Наконец, в файле .csproj можно настроить автоматические действия после сборки. Образец:
<Target Name="PostBuild" AfterTargets="ComputeFilesToPublish">
<Exec Command="npm install"/>
</Target>