我正在运行gulp任务来缩小和移动JS文件。
var js_modules = 'application/modules/**/assets/js/*.js';
var js_dist_modules = 'assets/js/modules/';
gulp.task('dev_scripts', function() {
return gulp.src(js_modules)
.pipe(plumber())
.pipe(uglify())
.pipe(gulp.dest(js_dist_modules));
});
使用此任务,输出为:
来源:
application/modules/users/assets/js/users.js
application/modules/menu/assets/js/menu.js
目的地:
assets/js/modules/users/assets/js/users.js
assets/js/modules/menu/assets/js/menu.js
我希望目的地是:
assets/js/modules/users/users.js
assets/js/modules/menu/menu.js
我如何实现这一目标?
答案 0 :(得分:1)
我使用gulp-rename
:
var rename = require('gulp-rename');
var js_modules = 'application/modules/**/assets/js/*.js';
var js_dist_modules = 'assets/js/modules/';
gulp.task('dev_scripts', function() {
return gulp.src(js_modules)
.pipe(plumber())
.pipe(uglify())
.pipe(rename(function(file) {
file.dirname = js_dist_modules + file.basename;
}))
.pipe(gulp.dest(.));
});
答案 1 :(得分:0)
使用gulp-flatten看起来像这样的东西可能有效(未经测试):
var flatten= require('gulp-flatten);
var js_modules = 'application/modules/**/assets/js/*.js';
var js_dist_modules = 'assets/js/modules/';
gulp.task('dev_scripts', function() {
return gulp.src(js_modules)
.pipe(plumber())
.pipe(uglify())
.pipe(flatten({ subPath: [2, 1] } ))
.pipe(gulp.dest(js_dist_modules));
});
您可以使用子路径编号来获取所需的第三个(2)或任何子目录。
这个答案比以前使用重命名更通用,以防你想要的目录 - 在你的情况下是glob ** - 与文件的基本名称不同。