在 Gulp 或 Grunt 中获取项目平台和配置

Get project platform and configuration in Gulp or Grunt

不知能否在gulpfile.jsgruntfile.js中得到ASP.NET项目配置和平台?我的意思是例如Debug|AnyCPU 个值。

是的,你可以,但出于显而易见的原因,你只能从知道这些细节的工具调用 gulp,例如msbuild.

假设您刚刚使用 Visual Studio 2015 为 .NET 4.5.2 创建了一个全新的空 ASP.NET Web 应用程序,您可以将类似的内容添加到 BuildAfterBuild Target:

<exec command='gulp --env="$(Configuration)|$(Platform)"' />

然后您需要 parse arguments in gulp,例如使用 yargs:

require('gulp').task("default", function() {
  console.log(require('yargs').argv.env);
});

如果你在 Visual Studio:

中构建,这将编写类似这样的内容
  1>------ Rebuild All started: Project: GulpFromMsbuild, Configuration: Release Any CPU ------
  1>  GulpFromMsbuild -> D:\GulpFromMsbuild\bin\GulpFromMsbuild.dll
  1>  [20:07:41] Using gulpfile D:\GulpFromMsbuild\gulpfile.js
  1>  [20:07:41] Starting 'default'...
  1>  Release|AnyCPU
  1>  [20:07:41] Finished 'default' after 36 ms
  ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

所以基本上有两种成分:

  1. 从调用工具(msbuild、teamcity、powershell 等)传递模式;
  2. 解析 gulp 中的参数(yargs 等);

我假设 Grunt 有一个类似的参数解析工具...