JavaScript Project System 的 MSBuild 参考
本文提供 MSBuild 属性和项的参考信息,你可以使用这些属性和项来配置基于 JavaScript Project System (JSPS) 的项目(使用 .esproj 格式)。
注意
本文中所述的属性扩展了 MSBuild 默认提供的属性。 有关通用 MSBuild 属性的列表,请参阅通用 MSBuild 属性。
ShouldRun 属性
本节收录了以下 MSBuild 属性:
ShouldRunNpmInstall
ShouldRunNpmInstall
属性指定是否在 Build 和 Restore 命令中运行 npm install
。 该属性的默认值为 true
(如果未设置)。
<PropertyGroup>
<ShouldRunNpmInstall>false</ShouldRunNpmInstall>
</PropertyGroup>
不应该运行 npm install
的两种常见情况是:
- 使用非 npm 包管理器(如 yarn 或 pnpm)时。 在这种情况下,最佳解决方案是创建一个在
BeforeRestore
之前运行的目标以手动运行安装。 - 当解决方案中存在全局包安装机制,因而无需运行单独的安装时。
ShouldRunBuildScript
ShouldRunBuildScript
属性指定是否在 Build 命令中运行 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
时包含 npm run
。
<PropertyGroup>
<BuildCommand>npm run build</BuildCommand>
</PropertyGroup>
StartupCommand
StartupCommand
属性指定 dotnet run
目标的行为。 如果关联的 package.json
包含 start
、server
或 dev
脚本,则默认的 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>