JavaScript 项目系统的 MSBuild 参考

本文提供了可用于基于 JavaScript 项目系统(JSPS)配置项目的 MSBuild 属性和项的参考信息,这些项目使用 .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 项目通常属于此类别。 在此方案中,生成用于生产,而不是用于调试。 请注意,BuildPublish 命令在 JSPS 项目中是分开的,即使设置了此属性,Publish 仍然运行。

命令属性

命令属性是旨在将常见 package.json 脚本映射到 MSBuild 目标的属性。 所有这些属性都支持默认值,如本节中所述。

使用 npm 以外的包管理器或脚本引擎(如 gulp)时设置这些属性。

本节介绍了以下 MSBuild 属性:

BuildCommand

BuildCommand 属性指定 build 目标的行为。 如果关联的 package.json 包含 buildcompile 脚本,则默认 BuildCommand 值已设置为运行它们。

若要修改命令,请在使用 npm时包括 npm run

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

StartupCommand

StartupCommand 属性指定 dotnet run 目标的行为。 如果关联的 package.json 包含 startserverdev 脚本,则默认 StartupCommand 值已设置为运行这些脚本。

如果修改命令,请在使用 npm时包括 npm run

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

TestCommand

TestCommand 属性指定 test 目标的行为。 如果关联的 package.json 包含 test 脚本,则默认 TestCommand 值已设置为运行此脚本。

如果修改命令,请在使用 npm时包括 npm run

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

CleanCommand

CleanCommand 属性指定 clean 目标的行为。 如果关联的 package.json 包含 clean 脚本,则默认 CleanCommand 值已设置为运行此脚本。

如果修改命令,请在使用 npm时包括 npm run

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

PublishCommand

PublishCommand 属性指定 publish 目标的行为。 如果关联的 package.json 包含 publish 脚本,则默认 PublishCommand 值已设置为运行此脚本。 在 npm 中,通常还会运行预发布和发布后脚本。

如果修改命令,请在使用 npm时包括 npm run

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

另请参阅