gulp js 连接问题
gulp js concat issue
/*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 文件夹中的两个文件。
发生了什么问题?
看起来你想写 dist
用于生产,但你写了 app
。将第二行更改为使用 dist 而不是 app。
.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 逻辑来获取输出目录名称并在任务中使用它...
/*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 文件夹中的两个文件。 发生了什么问题?
看起来你想写 dist
用于生产,但你写了 app
。将第二行更改为使用 dist 而不是 app。
.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 逻辑来获取输出目录名称并在任务中使用它...