EDIT:
私はタイトルに、最初から書いたように、これはない程度のコマンドラインはパラメータので、重複しないです。パスパラメータ(コマンドラインではなく)
//EDIT
Iは一意に設計されたページ(PAGE_1、page_2など)不特定多数の、それぞれが独自のsass/pages/page_1/page_1.scss
ファイルとサスを設定しています。
これらのページはすべて同じWebサイトに属し、各ページのSassファイル@import
は、sass/includes
フォルダの同じファイルセットです。 sass/**/*
を見て、基本的な一気タスクと
、すべてのページのスタイルはいつでも私は任意のページのスタイルに変更を加えるコンパイルさ。明らかに、これはうまく拡張できません。
私はgulp-watch
を使ってみましたが、付属の.scss
ファイルのいずれかに変更が加えられても、それは捉えられません。実際にコンパイルされたファイルに加えられた変更をキャッチするだけで、同等の.css
になります。
私のgulpfileをDRYできるようにするには、gulpfile.js
にフォルダ名の基本的な配列を維持して、それぞれをループして個別に監視することがベストな解決策でした。それぞれのフォルダに対して同じSassコンパイルタスク。その後
var pageFolderNames = [
'page_1',
'page_2'
// etc
];
一気タスクのために、私が持っている:
gulp.task('watch_pages', function()
{
// Get array length
var numPages = pageFolderNames.length;
// Add a new watch task for each individual page
for (var i = 0; i < numPages; i++)
{
gulp.watch('sass/pages/' + pageFolderNames[i] + '/**/*.scss', ['sass_page']);
}
});
コンパイル(簡体字)タスクSASS:
// Task: Compile page-specific Sass
gulp.task('sass_page', function()
{
return gulp.src('sass/pages/' + pageFolderNames[i] +'/**/*.scss')
.pipe(plumber(plumberErrorHandler))
.pipe(sass(...))
.pipe(gulp.dest('css/pages/' + pageFolderNames[i]));
});
このアプローチ(私はJS-FUがweaksauce知っています)はエラーになります。
'sass_page' errored after 71 μs
ReferenceError: i is not defined
Isこのような作業をするために、i
のようなパラメータを渡す方法はありますか?あるいは、私がやろうとしていることを達成するためのよりよい方法がありますか?私には卑劣な疑惑がある。 :/
[Gulpに異なる方法でタスクを実行させるフラグを渡すことはできますか?](http://stackoverflow.com/questions/23023650/is-it-possible-to-pass-a -flag-to-gulp-to-it-it-run-tasks-in-different-ways) –
私の答えを削除しました。私の理解から、あなたは特定のフォルダを見て、その特定のフォルダにタスクsass_pageを実行したいと思っています。私は正しい? – Brian
@PaulSwetz同じではありません。私が見つけたすべての「パスパラメータ」の投稿は、コマンドラインからそうすることに関連しています。私は特に、コマンドラインからではなく、内部ロジックを介してそうしているのを探しています。 – Sandwich