npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hilosiva/vite-plugin-image-oretimaizer

v0.2.4

Published

ビルド時にSharp.js を利用して画像アセットを最適化する俺流の Vite 用プラグイン。

Downloads

29

Readme

vite-plugin-image-oretimaizer

vite-plugin-image-oretimaizer は、ビルド時にsharp を利用して画像アセットを最適化する俺流の Vite 用プラグイン。

特徴

画像アセットを圧縮し、.jpg/.jpeg.png形式の画像は、.webp.avif ファイルも生成します。

サポートするファイル形式

  • .jpg/.jpeg
  • .png
  • .gif
  • .webp
  • .avif

インストール

■ npm の場合

  npm i @hilosiva/vite-plugin-image-oretimaizer -D

■ yarn の場合

  yarn add @hilosiva/vite-plugin-image-oretimaizer -D

■ pnpm の場合

  pnpm i @hilosiva/vite-plugin-image-oretimaizer -D

警告

vite-plugin-image-oretimaizer は内部でsharp を利用しています。自動でインストールはされませんので、予めご自身で開発依存関係として追加して下さい。

npm i sharp -D

使用方法

「vite.config.js」でインポートし、プラグインに追加してください。

import { defineConfig } from "vite";
import { ViteImageOretimaizer } from "@hilosiva/vite-plugin-image-oretimaizer"; // 追加

export default defineConfig({
  plugins: [
    // 追加
    ViteImageOretimaizer({
      /* オプション */
    }),
  ],
});

下記のコマンドでビルドを行うことで圧縮が実行されます。

npm run build

注意

vite-plugin-image-oretimaizer は「public」フォルダ内の静的アセットには実行されません。

また、Vite は、build.assetsInlineLimitの設定値より小さなサイズ(デフォルト:4KB)の画像は base64 URL としてインライン化されるため、この設定値より大きなサイズの画像にのみ vite-plugin-image-oretimaizer が実行されます。

インライン化を無効にするには、、build.assetsInlineLimitの設定値を「0」にして下さい。

「vite.config.js」

export default defineConfig({
 plugins: [
   ViteImageOretimaizer({
     /* オプション */
   }),
 ],

 ...

 build: {
   assetsInlineLimit: 0, // base64 URL としてのインライン化を無効
 },
});

オプション

supportedExts

  • タイプ: Array
  • デフォルト: [".jpg", ".jpeg", ".png", ".gif", ".webp", ".avif"]

サポートする画像ファイルの形式。

これらの画像形式の画像が圧縮の対象となります。

generate.inputExts

  • タイプ: Array
  • デフォルト: [".jpg", ".jpeg", ".png"]

generate.outputExts に指定した形式の画像を生成する対象となる画像形式。

generate.outputExts

  • タイプ: Array
  • デフォルト: [".webp", ".avif"]

新たに生成する画像形式。

generate.preserveExt

  • タイプ: Bool
  • デフォルト: false

自動生成する際、元の拡張子を保持するかどうか

trueにすると、元の拡張子を保持し、後ろに新しい拡張子を追加します。 例: sample.jpg.webp

falseにすると、元の拡張子を新しい拡張子に置き換えます。 例: sample.webp

jpg

.jpg の圧縮設定。

sharp の「jpeg」オプションと同じ設定が使えます。

jpeg

.jpeg の圧縮設定。

sharp の「jpeg」オプションと同じ設定が使えます。

png

.png の圧縮設定。

sharp の「png」オプションと同じ設定が使えます。

.gif

.gif の圧縮設定。

sharp の「gif」オプションと同じ設定が使えます。

webp

.webp の圧縮設定。

sharp の「webp」オプションと同じ設定が使えます。

avif

.avif の圧縮設定。

sharp の「avif」オプションと同じ設定が使えます。


例:vite.config.js

import { defineConfig } from "vite";
import { ViteImageOretimaizer } from "@hilosiva/vite-plugin-image-oretimaizer";

export default defineConfig({
  plugins: [
    ViteImageOretimaizer({
      generate: {
        preserveExt: true,
      },
      jpg: {
        quality: 70,
        mozjpeg: true,
      },
      jpeg: {
        quality: 70,
        mozjpeg: true,
      },
      png: {
        quality: 70,
      },
      webp: {
        quality: 50,
        lossless: true,
      },
      avif: {
        lossless: true,
      },
    }),
  ],
  build: {
    assetsInlineLimit: 0,
  },
});