CMA BLOG
株式会社シーエムエー ホーム > CMA BLOG > ホームページ制作 > タスクランナーを導入して一括でWebP画像に変換すれば、ページスピードインサイトで指摘される「次世代フォーマットでの画像の配信」を100%回避!
CMA BLOG
株式会社シーエムエー ホーム > CMA BLOG > ホームページ制作 > タスクランナーを導入して一括でWebP画像に変換すれば、ページスピードインサイトで指摘される「次世代フォーマットでの画像の配信」を100%回避!
こんにちは。制作部開発グループの山本です。
以前「ページスピードインサイトの速度改善」についてご紹介しましたが、
社内のデザイナーより、
など要望をいただきました。
そこで今回、タスクランナー(※gulp.js)を使用して、
一瞬で「サイト全体の画像をWebP画像に変換する仕組み」を構築しましたのでご紹介いたします。
※gulp.jsとは
Webサイト制作の様々なタスクを自動化することができるビルドシステムです。
※LTS推奨版のダウンロードをおすすめいたします。
npm i -D gulp gulp-webp
インストールが終わると作業ディレクトリ直下に「node_modules」階層と「package-lock.json」「package.json」が生成されます。
const gulp = require('gulp'); const webp = require('gulp-webp'); const path = { src: 'src/img/**/*.{jpeg,jpg,png}', dest: 'dest/img', }; const convertImage = () => { return gulp .src(path.src) .pipe( webp({ quality: 90, }) ) .pipe(gulp.dest(path.dest)); }; const watchFiles = () => { gulp.watch(path.src, gulp.parallel(convertImage)); }; exports.default = gulp.series(convertImage, watchFiles);
・ターミナルで「npx gulp」を実行すると処理が走ります。
npx gulp
gulpfile.js内の記述により初回は作業ディレクトリ内の全ての画像の変換処理が一度だけ走り、
その後画像の変更を監視する状態になります。
画像の変更が検知された場合、JPEGやPNGといった拡張子からWebPへの変換処理が走ります。
/src/img/フォルダに保存されているJPEGやPNGファイルは、自動でWebP画像に変換され/dest/img/フォルダに格納されます。
実際にWebP画像に変換処理された画像の容量を比較します。
サイト内のJPEG、PNG画像はすべてWebP画像に変換されるため、
スピードインサイトで指摘される「次世代フォーマットでの画像の配信」を100%回避することができます。
次世代フォーマットのWebP画像は、JPEGやPNGに比べ圧縮率が高いため、
高品質の状態で読み込み速度を改善することができます。
一度タスクランナーの仕組みを導入すれば、
WebP画像への変換を自動で処理することができます。
また、
最近では「WebP画像」よりもさらに圧縮率の高い「AVIF画像」も登場いたしました。
今後ブラウザの対応状況に応じて、弊社でも調査しながら導入を検討していきたいと思います。
Top