gulpでSSI(サーバーサイドインクルード)を使用する「connect-ssi」

最近SSI(サーバーサイドインクルード)を使う機会があり、ローカル開発環境でも確認のためにSSIを表示できるようにする必要がありました。
今回はBrowserSyncと合わせて使うことでSSIが使えるようになる「connect-ssi」についてまとめておきます。
connect-ssiのインストール
まずは「connect-ssi」のインストールからです。
BrowserSyncと合わせて使うため、gulp自体と一緒にインストールしておきます。
npm install gulp -d
npm install browser-sync -d
npm install connect-ssi -dgulpfile.jsの設定
下記がgulpfile.jsの設定です。
browserSync.init({});内で「middleware」を呼び出していて、そこでconnect-ssiの設定をしています。
var gulp = require('gulp');
var browserSync = require("browser-sync");
var connectSSI = require('connect-ssi');
// 起動時のパス
var startPath = '/index.html';
// BrowserSyncの設定
gulp.task('browser-sync', function(done) {
browserSync.init({
server: {
baseDir: "./dist",
},
startPath: startPath,
middleware: [
connectSSI({
baseDir: './dist',
ext: '.html'
})
]
});
done();
});
gulp.task('bs-reload', function(done) {
browserSync.reload();
done();
});
var browserSync = require('browser-sync');
// 監視
gulp.task('watch', function(done) {
gulp.watch(['/html**/*.scss'], gulp.task('bs-reload'));
gulp.watch(['/html**/*.css'], gulp.task('bs-reload'));
gulp.watch(['/html**/*.html'], gulp.task('bs-reload'));
gulp.watch(['/html**/*.{png,jpg,gif,webp,svg,ics,css,pdf,js}'], gulp.task('bs-reload'));
done()
});
gulp.task('default', gulp.series(gulp.parallel('browser-sync', 'watch')));設定することは「baseDir」で読み込みの基準となるディレクトリを指定するのと、「ext」でSSIで読み込むファイルの拡張子を指定するくらいです。
これで下記コマンドでgulpを起動すると、localhostがブラウザで起動して、SSIの記述がある場合は表示されるようになります。
npx gulp

Android実機で表示しているサイトを、Chrome開発者ツールで開いて検証する方法
Visual Studio Codeでファイル差分の比較を行う方法
CSSやJavaScriptでスクロールバーの横幅を取得する方法
サーバーのアップロードファイルの最大容量の確認と変更方法
gulpでPostCSSを使う方法
コードスニペットの管理方法や命名規則について
CSSのカスタムプロパティ(変数機能)の使い方
Apacheのテストページを非表示にする方法
WordPressのメディアライブラリで画像を追加するときに表示される「HTTP エラー」の解消方法
アイコンフォントをPCにインストールしている場合は、コーディング後の確認に注意
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Visual Studio Codeでミニマップ関連を見やすくするカスタマイズ方法
goenvを使って、MacにGo言語をインストールする
ショートカットキーの一覧をSketchを使って作成する方法とそのメリット
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
Client Folder Makerでファイルの中身まで一括で作成する方法
Keyboard Maestroを使ってDropboxの「同期の無視」を簡単にできるようにする