0
/*global -$ */
'use strict';
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var csso = require('gulp-csso');
var argv = require('yargs').argv;
var gulpif = require('gulp-if');
var inquirer = require('inquirer');
var minifyHTML = require('gulp-minify-html');
var browserSync = require('browser-sync');
var del = require('del');
var reload = browserSync.reload;

// variables
var production = !!(argv.production);  
var dev = !!(argv.dev);  
var move = !!(argv.move); 
var app = 'app';
var dist = 'dist';
var src = {
  scss : app+'/style.scss',  
  scripts:{
  modernizr:'bower_components/modernizr/modernizr.js',
  vendor:['bower_components/jquery/dist/jquery.js',
  'bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js',
  ],
  main:app+'/scripts/main.js'
  }
};

// Vendor js
gulp.task('vendorScripts', function(){
  return gulp.src(src.scripts.vendor)
    .pipe(concat('vendor.js'))    
    .pipe(gulpif(dev,gulp.dest(app+'/js/vendor/')))
    .pipe(gulpif(production,gulp.dest(app+'/js/vendor/')))
    .pipe(rename('vendor.min.js'))
    .pipe(uglify())
    .pipe(gulpif(dev,gulp.dest(app+'/js/vendor/')))
    .pipe(gulpif(production,gulp.dest(dist+'/js/vendor/')));
});

gulp vendorScripts --production を実行すると vendor.min.js のみがコンパイルされますが、gulp vendorScripts --dev を実行すると vendor.js と vendor.min.js がコンパイルされます

dist フォルダー内の両方のファイルをコンパイルしたい。どのような問題が発生しましたか?

4

1 に答える 1

0

dist本番用に書きたかったようですが、あなたが書きましappた。app ではなく dist を使用するように 2 行目を変更します。

.pipe(gulpif(dev,gulp.dest(app+'/js/vendor/')))
.pipe(gulpif(production,gulp.dest(app+'/js/vendor/')))

下は正しい

.pipe(gulpif(dev,gulp.dest(app+'/js/vendor/')))
.pipe(gulpif(production,gulp.dest(dist+'/js/vendor/')));

単なるアドバイス: gulp-if を使用するのではなく、js if-else ロジックを適用して出力ディレクトリ名を取得し、それをタスクで使用します...

于 2015-06-08T04:20:54.630 に答える