Справочник по MSBuild для системы проектов JavaScript
В этой статье содержатся справочные сведения о свойствах и элементах MSBuild, которые можно использовать для настройки проектов на основе системы проектов JavaScript (JSPS), которая использует формат esproj .
Примечание.
Свойства, описанные в этой статье, расширяют свойства MSBuild, предоставляемые по умолчанию. Список стандартных свойств см. в статье Общие свойства MSBuild.
Свойства ShouldRun
В этом разделе описаны следующие свойства MSBuild:
ShouldRunNpmInstall
Свойство ShouldRunNpmInstall
указывает, следует ли запускать или не запускать npm install
команды сборки и восстановления. Значение по умолчанию для свойства — true
если не задано.
<PropertyGroup>
<ShouldRunNpmInstall>false</ShouldRunNpmInstall>
</PropertyGroup>
Два распространенных сценария, в которых не выполняется npm install
желательно:
- Если используется диспетчер пакетов, отличный от npm (например, yarn или pnpm). В этом сценарии лучше всего создать целевой объект, который выполняется перед
BeforeRestore
запуском установки вручную. - Если в решении существует глобальный механизм установки пакетов, который делает выполнение отдельных установок ненужным.
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>