我发现的关于这个主题的最后一篇文章是从 2015 年秋季开始的。我认为这是每个开发人员迟早都需要的基本内容之一。
我想根据实际的构建配置(调试/登台/发布)等来区分我的 gulp 任务。我实际上不需要将它与 Visual Studio 的解决方案配置连接起来。
这是一个建议的解决方案:我们将在 Task Runner Explorer 中将其作为一个选项,然后在任务绑定中,我可以勾选我想在哪些配置中运行任务。
只有我需要这个吗?
我发现的关于这个主题的最后一篇文章是从 2015 年秋季开始的。我认为这是每个开发人员迟早都需要的基本内容之一。
我想根据实际的构建配置(调试/登台/发布)等来区分我的 gulp 任务。我实际上不需要将它与 Visual Studio 的解决方案配置连接起来。
这是一个建议的解决方案:我们将在 Task Runner Explorer 中将其作为一个选项,然后在任务绑定中,我可以勾选我想在哪些配置中运行任务。
只有我需要这个吗?
我不使用 TRX,但您可以将这些任务中的任何一个绑定到诸如“项目打开”或“构建之前”之类的事件。我使用 gulp-if 并在父任务中设置变量,然后使用run-sequence
. (未经测试的代码)
gulpfile.js
var gulp = require('gulp'),
$ = require('gulp-load-plugins')(),
requireDir = require('require-dir')('./js/gulp/tasks'),
runSequence = require('run-sequence'),
vars = require('./variables');
gulp.task('dev', function(){
vars.isProduction = false;
runSequence('clean', ['css', 'scripts']);
});
gulp.task('prod', function(){
vars.isProduction = true;
runSequence('clean', ['css', 'scripts']);
});
/js/gulp/tasks/scripts.js
gulp.task('scripts', function () {
return gulp.src('scripts/**/*.js')
.pipe($.concat('app.min.js'))
.pipe($.if(vars.isProduction, $.uglify()))
.pipe(gulp.dest('/js'))
.pipe($.plumber({
errorHandler: vars.onError
}))
.pipe($.if(!vars.isProduction, $.livereload()));
变量.js
module.exports = {
isProduction: false,
onError: function (err) {
log(err);
}
};