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


HTMLのpattern属性を使ってフォームのバリデーションチェックを行う方法
Movable Typeでコメントアウトして出力時に無視する方法
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
Webサイト制作の基礎の基礎、HTMLって何?
MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
WordPressでショートコードを作成する方法
W3 Total Cacheをレスポンシブデザインのテーマで使用する時の注意ポイント!!【WordPress】
属性・Class・IdなどHTMLタグの細かい部分を見ていこう!!
JavaScriptのtest関数と正規表現でバリデーションチェックを行う
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
ウェブ開発時のテスト環境と本番環境の取り違えを防ぐChrome拡張機能「Environment Marker」
【2026年版】Karabiner-Elementsで実現する右commandキー活用のススメ
Bartender ProのTop Shelf機能でできること
高機能なスクリーンショットアプリ「CleanShot X」
macOSの効率化に関するDiscordコミュニティ「CMD-F」を立ち上げました
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」