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

iOS Safariで指定したフォントサイズにならない場合の対処法
Mac向けのミニマルでお洒落なデザインのGitクライアント「Gitfox」
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」
gulp-sass 5の「does not have a default Sass compiler」エラーを解消する
iTerm2を使いこなすために覚えておきたいショートカット集
Google Maps APIでピンのアクティブ時にピン画像を変える方法
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
Webデザイナーを目指す専門学生が技術ブログを書くメリット
WordPressで作成した記事をSlackでシェアしたときに、抜粋文が長く表示される場合の対処法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Orbital 2と修飾キーの同時押しで、別のショートカットキーを発火させる方法
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
Alfred 4のスニペットで使えるプレースホルダー機能
macOSのシステム環境設定「言語と地域」の設定見直し
HTMLのpattern属性を使ってフォームのバリデーションチェックを行う方法
Keyboard Maestroの「Prompt for User Input」でユーザーの入力に応じて変化するマクロを作成する方法
ScreenFlowでできる3種類のカット編集方法
JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
Vue CLIをインストールしたのに「command not found: vue」と表示されてしまう場合の対処法