監視対象の中で、変更のあったファイル名を取得したいです。
引数にはオブジェクトを渡しており、その中身はパターンで指定しているため、
ファイルの名前を取得してそのあとの処理に渡していきたいです。
js
1// 監視するファイルのパス 2const path = { 3 html: "./*.html", 4 js: "js/*.js", 5 sass: "sass/**/*.scss", 6}; 7 8// Sass のコンパイル 9function compileSass(done) { 10 11 src(path["sass"]) 12 .pipe(sass({outputStyle: "expanded"})) // この後に処理をつなげて取得したファイル名を渡したいです 13 .pipe(dest("css")); 14 15 done(); 16} 17 18// ブラウザの更新 19function reload(done) { 20 browserSync.reload(); 21 done(); 22} 23 24// 標準で実行されるタスク 25exports.default = () => { 26 27 browserSync.init({ 28 browser: 'Google Chrome', 29 server: { 30 baseDir: './', 31 index: './index.html', 32 }, 33 }); 34 35 // Sass に変更があったらコンパイル 36 watch(path['sass'], compileSass); 37 38 // 監視対象のファイルに変更があったらブラウザの更新 39 watch(Object.keys(path).map(key => path[key]), reload); 40}; 41 42exports.build = series(compileSass, reload);
ちなみに最新では関数 task
は非推奨になっているため、↑の書き方に適合した解決策でお願いします。
調べると event.path
でファイル名を取得できるみたいな記事が見つかりますが、今の私の書き方で pipe
の中の
処理にこれを引数として渡したら undefined
になってしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 11:33
2019/10/29 01:04 編集
2019/11/14 14:03