2021.03.16

Node.js

gulp-sass-globでパーシャルファイルを読み込み

sassコンパイル時、コンポーネントごとに細分化されたパーシャルファイルは、読み込み元のscssファイルから@importを利用して読み込みます。以下の例ではlayout.scssで3つのパーシャルファイルを読み込みます。

//layout.scss
@charset "UTF-8";

@import "page/_access.scss";
@import "page/by/_access_train.scss";
@import "page/by/_access_bus.scss";

gulpでsassをコンパイルすると、以下のようにlayout.cssが書き出されます。ソースはlayout.scssで読み込んだファイルの順番通りになっています。なお書き出されるのはlayout.cssのみで、アンダーバーの付いたパーシャルファイルのcssは書き出されません。

//layout.css
.p-access {
  text-align: center;
}

.p-access-ttl {
  color: #ff0000;
}

.p-access-train {
  text-align: center;
}

.p-access-train-ttl {
  color: #ff0000;
}

.p-access-bus {
  text-align: center;
}

.p-access-bus-ttl {
  color: #ff0000;
}

@importでパーシャルファイルを読み込む際に、gulp-sass-globを利用します。以下を実行してgulp-sass-globをインストールします。

//gulp-sass-globのインストール
npm install gulp-sass-glob

gulpfile.jsにgulp-sass-globの処理を追加します。gulp-sass-globの実行はgulp-sass実行の前にする必要があります。

//gulpfile.js
const gulp = require('gulp');
const sass = require('gulp-sass');
const sassGlob = require('gulp-sass-glob');  //gulp-sass-globの読み込み

function styles() {
  return gulp
    .src('./src/scss/**/*.scss')
    .pipe(sassGlob())  //gulp-sass-globの実行
    .pipe(
      sass({
        outputStyle: 'expanded'
      })
    )
    .pipe(
      gulp
        .dest('../assets/css')
    );
}

gulp.task('default', styles);

これでgulp-sass-globが利用できるようになりました。layout.scssを修正します。@import "page/**";のように記述すると、対象ディレクトリ以下の全てのパーシャルファイルが読み込めます。

//layout.scss
@charset "UTF-8";

@import "page/**";

gulpでsassをコンパイルすると、以下のようにlayout.cssが書き出されます。注意点としてgulp-sass-globのパーシャルファイル読み込みは、ファイル名が数字・アルファベット順です。そのためlayout.cssのソースも読み込んだファイルの順番通りになります。

//layout.css
.p-access {
  text-align: center;
}

.p-access-ttl {
  color: #ff0000;
}

.p-access-bus {
  text-align: center;
}

.p-access-bus-ttl {
  color: #ff0000;
}

.p-access-train {
  text-align: center;
}

.p-access-train-ttl {
  color: #ff0000;
}

関連記事

2022.07.10

Node.js

scss-lintのエラー回避方法

scssファイル内でscss-lintのエラーを回避します。以下はgridレイアウトで使用する「fr」が許可されていない単位としてエラーになるのを無効化していま…

2021.01.11

Node.js

パッケージのバージョン指定インストールとpackage-lock.json

パッケージインストール時にパッケージ名の後に@を付けると、パッケージのバージョンの指定ができます。以下はjqueryのバージョン3.4.1インストール時の指定で…

2021.03.22

Node.js

gulpのwatchメソッドでsassを自動コンパイル

gulpのwatchメソッドでscssファイルを常時監視し、scssファイルが更新されたタイミングでsassをコンパイルします。 gulpfile.jsにwat…

2021.01.12

Node.js

npm lsでインストールされているパッケージの情報を表示

プロジェクトのディレクトリでnpm lsを実行するとインストールされているパッケージの情報を表示できます。lsコマンドはlistコマンドの短縮形です。 例えばプ…

2021.03.07

Node.js

.eslintrcの設定

ESLintはJavaScriptの構文をチェックするツール(Linter)の一つで、.eslintrcはESLintの設定ファイルです。以下を記述することでE…

上に戻る