Поделиться через


Справочник по MSBuild для системы проектов JavaScript

В этой статье содержатся справочные сведения о свойствах и элементах MSBuild, которые можно использовать для настройки проектов на основе системы проектов JavaScript (JSPS), которая использует формат .esproj.

Заметка

Свойства, описанные в этой статье, расширяют свойства MSBuild, предоставляемые по умолчанию. Список распространенных свойств MSBuild см. в разделе Общие свойства MSBuild.

Свойства ShouldRun

В этом разделе описаны следующие свойства MSBuild:

ShouldRunNpmInstall

Свойство ShouldRunNpmInstall указывает, следует ли запускать npm install в командах сборки и восстановления. Значение по умолчанию для свойства true, если не задано.

<PropertyGroup>
  <ShouldRunNpmInstall>false</ShouldRunNpmInstall>
</PropertyGroup>

Два распространенных сценария, в которых не выполняется npm install, являются желательными:

  1. Если используется диспетчер пакетов, отличный от npm (например, yarn или pnpm). В этом сценарии лучше всего создать целевой объект, который выполняется перед BeforeRestore, чтобы вручную запустить установку.
  2. Если в решении существует глобальный механизм установки пакетов, который делает выполнение отдельных установок ненужным.

ShouldRunBuildScript

Свойство ShouldRunBuildScript указывает, следует ли запускать npm run build в командах сборки. Значение по умолчанию для свойства true, если не задано.

<PropertyGroup>
  <ShouldRunBuildScript>false</ShouldRunBuildScript>
</PropertyGroup>

Для проектов, содержащих только JavaScript, для которых не требуется сборка, задайте для этого свойства значение false. Недавно созданные проекты React, Vue и Angular обычно попадают в эту категорию. В этом сценарии сборка используется для рабочей среды, а не для отладки. Обратите внимание, что команды Build и Publish разделены в проектах JSPS и Publish по-прежнему выполняются, даже если это свойство задано.

Свойства команд

Свойства команд — это свойства, предназначенные для сопоставления общих скриптов package.json с целевыми объектами MSBuild. Значения по умолчанию поддерживаются для всех этих свойств, как описано в этом разделе.

Задайте эти свойства при использовании диспетчеров пакетов, отличных от npm, или обработчиков сценариев, таких как gulp.

В этом разделе описаны следующие свойства MSBuild:

BuildCommand

Свойство BuildCommand указывает поведение целевого объекта build. Если связанный package.json содержит скрипт build или compile, значение BuildCommand по умолчанию уже установлено для их запуска.

Чтобы изменить команду, включите npm run при использовании npm.

<PropertyGroup>
  <BuildCommand>npm run build</BuildCommand>
</PropertyGroup>

StartupCommand

Свойство StartupCommand указывает поведение целевого объекта dotnet run. Если связанный package.json содержит start, serverили скрипт dev, значение по умолчанию StartupCommand уже задано для выполнения этих скриптов.

При изменении команды включите npm run при использовании npm.

<PropertyGroup>
  <StartupCommand>npm run serve</StartupCommand>
</PropertyGroup>

TestCommand

Свойство TestCommand указывает поведение целевого объекта test. Если связанный package.json содержит скрипт test, значение TestCommand по умолчанию уже установлено для запуска этого скрипта.

При изменении команды включите npm run при использовании npm.

<PropertyGroup>
  <TestCommand>ng test</TestCommand>
</PropertyGroup>

CleanCommand

Свойство CleanCommand указывает поведение целевого объекта clean. Если связанный package.json содержит скрипт clean, значение CleanCommand по умолчанию уже установлено для запуска этого скрипта.

При изменении команды включите npm run при использовании npm.

<PropertyGroup>
  <CleanCommand>npm run clean</CleanCommand>
</PropertyGroup>

PublishCommand

Свойство PublishCommand указывает поведение целевого объекта publish. Если связанный package.json содержит скрипт publish, значение PublishCommand по умолчанию уже установлено для запуска этого скрипта. В npm обычно используются скрипты предварительной и последующей публикации, которые также будут выполняться.

При изменении команды включите npm run при использовании npm.

<PropertyGroup>
  <PublishCommand>npm run publish</PublishCommand>
</PropertyGroup>

См. также