[解決済み] Gulp.jsとグロビングパターンを使って、その場(同じdest)のファイルを変更する。
2022-11-18 01:07:39
質問
.scssファイルを.cssファイルに変換し(gulp-ruby-sassを使用)、結果の.cssファイルを元のファイルが見つかったのと同じ場所に配置しようとするgulpタスクがあります。問題は、グロビングパターンを使用しているため、元のファイルがどこに保存されているか必ずしもわからないということです。
以下のコードでは、gulp-tap を使用してストリームをタップし、ストリームが読み込まれた現在のファイルのファイル パスを把握しようとしています。
gulp.task('convertSass', function() {
var fileLocation = "";
gulp.src("sass/**/*.scss")
.pipe(sass())
.pipe(tap(function(file,t){
fileLocation = path.dirname(file.path);
console.log(fileLocation);
}))
.pipe(gulp.dest(fileLocation));
});
の出力に基づき
console.log(fileLocation)
の出力から、このコードは問題なく動作するように思えます。しかし、結果の CSS ファイルは、私が期待しているよりも 1 つ上のディレクトリに配置されているようです。本来あるべき場所に
project/sass/partials
であるべきところ、結果のファイルパスは単に
project/partials
.
もし、もっと簡単な方法があれば、ぜひその解決策をもっと評価したいと思います。ありがとうございます。
どのように解決するのですか?
ご推察の通り、あなたはこれを複雑にしすぎています。 グロブドパスを使用するため、宛先は動的である必要はありません。
dest
にも使われるからです。 単にsrcをグロブしているのと同じベースディレクトリにパイプするだけです。
gulp.src("sass/**/*.scss")
.pipe(sass())
.pipe(gulp.dest("sass"));
ファイルが共通のベースを持っておらず、パスの配列を渡す必要がある場合、これはもはや十分ではありません。 この場合、base オプションを指定することになります。
var paths = [
"sass/**/*.scss",
"vendor/sass/**/*.scss"
];
gulp.src(paths, {base: "./"})
.pipe(sass())
.pipe(gulp.dest("./"));
関連
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] リダイレクトされずにHTMLフォームを送信する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]