Я использовал Grunt некоторое время, и недавно решил попробовать Gulp. Должен сказать, из того, что я видел до сих пор, это выглядит многообещающим. Однако кажется, что в Grunt есть некоторые вещи, которые являются трудными или невозможными в Gulp (как и в случае любых 2 подобных вещей, я полагаю).Gulp Equivalent to Grunt's Files.Rename
Одна из этих вещей - переименование исходных файлов для пункта назначения. Я признаю, что это нишевый случай, но он может быть очень сильным. В моем случае я использую g (r?) U (nt | lp) -sass. У меня есть файлы SCSS в папках с «scss» в имени, и я хочу поместить их в путь с «css» в качестве одной из папок в том же месте на пути, что и папка «scss».
С Грунтом это можно сделать прямо в объекте files
, с использованием метода rename
. Например:
grunt.initConfig ({
sass: {
move: {
options: {
lineNumbers: true,
compass: true,
cacheLocation: 'app/.cache/sass'
},
files: [{
expand: true,
cwd: 'app/modules/',
src: '**/*.scss',
dest: '',
ext: '.css',
rename: function (dest, src) {
return 'app/modules/' + src.replace ('scss', 'css');
}
}]
}
}
});
require ('load-grunt-tasks')(grunt);
До сих пор с Глоток, у меня есть:
var gulp = require ('gulp');
var sourcemaps = require ('gulp-sourcemaps');
var scss = require ('gulp-sass');
gulp.task('scss:move', function() {
return gulp.src ('app/modules/**/scss/**/*.scss')
.pipe(sourcemaps.init())
.pipe (scss())
.pipe (sourcemaps.write())
.pipe(gulp.dest(**?**));
});
Как преобразовать исходный путь в Глоток для пути назначения, как метод files.rename
в Грунта? Я бы предпочел относительно простое решение, как и один метод, но решения, связанные с плагинами Gulp, тоже в порядке.
Вы пытаетесь скопировать файлы в каталог desintation и переименовать их в процессе, оставив исходные папки 'scss' в исходном каталоге? Или вы пытаетесь переместить каталоги 'scss' в каталоги' css' в исходном каталоге? В любом случае, вы хотите сохранить структуру каталогов, но переименовать каталоги 'scss' в' css', правильно? – JMM
Я хочу сохранить папки 'scss' и создать новые папки' css' в том же месте, что и каждая папка 'scss'. Например, если есть файл 'app/scss/app.scss', я хочу создать файл' app/css/app.css' с CSS, скомпилированным из оригинального Sass. – trysis