【发布时间】:2021-03-31 09:49:51
【问题描述】:
我有一个 .NET MVC 项目,它在每次构建 /// <binding AfterBuild='default' /> 后执行 gulpfile.js。如果我在 Visual Studio 中本地构建项目,这很有效。但是我必须在每次提交后在 Azure Pipeline 上设置自动构建。 VSBuild@1 任务成功完成,但 gulpfile.js 没有被执行。
gulpfile.js
/// <binding AfterBuild='default' />
'use strict'
//include gulp
var gulp = require('gulp'),
//include plugins
templateCache = require('gulp-angular-templatecache'),
rimraf = require('rimraf'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
gutil = require('gulp-util'),
path = require('path');
//concatenate & minify JS Files
function scripts() {
return gulp.src([...])
.pipe(concat('main.js'))
.pipe(rename('main.min.js'))
.pipe(uglify())
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
.pipe(gulp.dest('Build/js'))//put main.js in this folder
}
exports.scripts = scripts;
exports.default = gulp.series(scripts);
Azure 管道 yaml
trigger:
- develop
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
【问题讨论】:
-
Gulp 预安装在 Microsoft 托管的代理上。您可以尝试在
VSBuild@1任务之后添加Gulp task 来执行gulpfile.js。 -
我确实尝试添加 gulp 任务。这就是我得到的.. C:\windows\system32\cmd.exe /D /S /C "C:\npm\prefix\gulp.cmd --gulpfile D:\a\1\s\src\. ..\gulpfile.js" [19:28:42] D:\a\1\s\src\...\PackageTmp [19:28:42] 尝试运行:npm install ##[错误]gulp 失败并出现错误:进程 'C:\npm\prefix\gulp.cmd' 失败,退出代码为 1 完成:gulp
-
嗨,本,我的回答对你有用吗?请检查并告知我们结果。
-
嗨,爱德华,我无法让 gulp 任务工作,但我确实弄清楚了为什么管道任务给了我错误。我认为这是因为它没有在正确的目录上运行。所以我最终做的是在网络服务器上编写一个批处理文件并运行 npm install 和 gulp。
标签: asp.net-mvc azure azure-devops gulp gulp-uglify