{"_id":"@absolu/assets-toolkit","_rev":"7-81593af4e491dcd57064650bd695cb32","name":"@absolu/assets-toolkit","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@absolu/assets-toolkit","version":"1.0.0","license":"MIT","_id":"@absolu/assets-toolkit@1.0.0","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"dist":{"shasum":"a10278f417597e46d3eb6cfaf9a737504ac31af8","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.0.0.tgz","fileCount":44,"integrity":"sha512-IM8mhWyaj9YDa5ZNHpBUhYlBpXIqpPY3xWae3yjzUcy+zSjvnzywpQ9Burgxabke2KjwrKB8f2BBcAmc95P0XQ==","signatures":[{"sig":"MEUCIQD4YkdGTvX7wmokfOyN20Fhe/wa0mVgNmDDWXCVr8iOFAIgZicl71c9g7funRGTBENcTPy9n8x0hyCussu++3L1hx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53603},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"57662ef16c4bb606b33e85767368a8a0b7fec37c","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"npm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.8.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"20.19.5","dependencies":{"glob":"^10.4.5","svgo":"^4.0.1","chalk":"^5.6.2","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.1","typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"sass":">=1.0.0","vite":">=5.0.0","vite-plugin-imagemin":">=0.6.0","vite-plugin-live-reload":">=3.0.0"},"peerDependenciesMeta":{"vite-plugin-imagemin":{"optional":true},"vite-plugin-live-reload":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.0.0_1775056964947_0.6268233565126577","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@absolu/assets-toolkit","version":"1.0.1","license":"MIT","_id":"@absolu/assets-toolkit@1.0.1","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"dist":{"shasum":"adff64bddd726fc33d789fb52a34ecf25b9a5b3d","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.0.1.tgz","fileCount":44,"integrity":"sha512-J7cB/3uH1HVc055Q4DGZe2odMW9kDkDWP9XwdXJ1WPzV9mhS3DjD5RF9cUTGtqsAOlm9Dgaz8S35yCGCKe0XVQ==","signatures":[{"sig":"MEUCIHevFd2eti5JuBknX1WrbYGLr0jau41kpE7L+Xnjlqa1AiEA6D5QJPGlPu3vz8vx3mLkV0FkmW7o4eb9kmeRHxOXP7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53652},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c31a951b44097e23cf8c07a948e15e7b529ec7bc","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"npm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.8.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"20.19.5","dependencies":{"glob":"^10.4.5","svgo":"^4.0.1","chalk":"^5.6.2","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.1","typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"sass":">=1.0.0","vite":">=5.0.0","vite-plugin-imagemin":">=0.6.0","vite-plugin-live-reload":">=3.0.0"},"peerDependenciesMeta":{"vite-plugin-imagemin":{"optional":true},"vite-plugin-live-reload":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.0.1_1775058260292_0.5723180315858196","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@absolu/assets-toolkit","version":"1.0.2","license":"MIT","_id":"@absolu/assets-toolkit@1.0.2","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"dist":{"shasum":"e2dec3bd6d013d8184490c2584ee0661670c21b5","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.0.2.tgz","fileCount":44,"integrity":"sha512-jSgeON0T8ZHELy2QDn80xSDoQBz4jWjO31pxFdtftBPqVrAF1wzIc++Om/RWXSj1GQGrDekDO6nbySKPklszrw==","signatures":[{"sig":"MEYCIQDVcjfC3sluzKLnxqhwJOaY5+zRRDNotLxzxqXYWq3qPwIhAKkh31fM0vyQYTZlmKjwZQZq7yZZIeIgkgYjLaWq0qRa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53790},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2668851fe56009d512602cf2d13c0e0c142aede4","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"npm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.8.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"20.19.5","dependencies":{"glob":"^10.4.5","svgo":"^4.0.1","chalk":"^5.6.2","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.1","typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"sass":">=1.0.0","vite":">=5.0.0","vite-plugin-imagemin":">=0.6.0","vite-plugin-live-reload":">=3.0.0"},"peerDependenciesMeta":{"vite-plugin-imagemin":{"optional":true},"vite-plugin-live-reload":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.0.2_1775059712401_0.8271787843179574","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@absolu/assets-toolkit","version":"1.0.3","license":"MIT","_id":"@absolu/assets-toolkit@1.0.3","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"dist":{"shasum":"c3092f715277cf78780f1ea42e1857a5b5b78e6a","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.0.3.tgz","fileCount":44,"integrity":"sha512-AoWGS4BtMKMa3tJ7AsH4o0xBFl1NJV5gRhFvvII1OmrA8BrILNnX78eBtDV4pAEfkvu7oqtPdcj/Z8Comz4mkA==","signatures":[{"sig":"MEYCIQCjNpT9eCRXXsQuYiDjz4ThEUZZEhJ/81KDmu6V1eqJhgIhAKDsnWzdx7zdOv5zwFEUwxD9IGuqIYbxjG4dUJ3a6cSt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53828},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b5f864b91888d7acd51826bce4cbd980f2ecc808","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"npm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.8.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"20.19.5","dependencies":{"glob":"^10.4.5","svgo":"^4.0.1","chalk":"^5.6.2","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.1","typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"sass":">=1.0.0","vite":">=5.0.0","vite-plugin-imagemin":">=0.6.0","vite-plugin-live-reload":">=3.0.0"},"peerDependenciesMeta":{"vite-plugin-imagemin":{"optional":true},"vite-plugin-live-reload":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.0.3_1777563527576_0.9072509376388365","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@absolu/assets-toolkit","version":"1.1.0","license":"MIT","_id":"@absolu/assets-toolkit@1.1.0","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"bin":{"assets-toolkit":"bin/cli.js"},"dist":{"shasum":"77be5d04cc69fc5f7a5ce8ef9786f06b3e2a5d02","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.1.0.tgz","fileCount":45,"integrity":"sha512-MBHw28iawxZzi/ls5jPL9I2eBNdTbnaZ0tAQPlflkCi4ZhPKKjXM2NiDbcSX+83+lz2DGaErlo1BDoSi/G1HPw==","signatures":[{"sig":"MEYCIQCpWPlDbMH6nKgxS7Emfgf+CQauhTE88uKdW3MTqfIdjAIhANFUEitxDbMfQfZfPxQnILjhj57scg2hZuD9yXODS5CP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55088},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"75f4ae8b5190a30474a82bc6af8097fc70e3285b","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.9.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^10.4.5","sass":"^1.0.0","svgo":"^4.0.1","chalk":"^5.6.2","sharp":"^0.33.5","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0","vite-plugin-live-reload":"^3.0.0","vite-plugin-image-optimizer":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"vite":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.1.0_1779272777423_0.017398838313758658","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@absolu/assets-toolkit","version":"1.2.0","license":"MIT","_id":"@absolu/assets-toolkit@1.2.0","maintainers":[{"name":"digitalwr","email":"devs@lmwr.fr"}],"bin":{"assets-toolkit":"bin/cli.js"},"dist":{"shasum":"e3ad172b217cb0ca7b9679741770f4e24ec14996","tarball":"https://registry.npmjs.org/@absolu/assets-toolkit/-/assets-toolkit-1.2.0.tgz","fileCount":45,"integrity":"sha512-KrOuSQjC7QtEGKfix95d8qHOroK9ZNI3btCzL15lTP4bcMbQQhe9KdjKZwKt4t4reUIE4ou0h4fc9fU4YeeJrQ==","signatures":[{"sig":"MEYCIQDOZjtsfV6aRk12j6bwG78nNm/wY6Pti9Jh15ciIlQYlwIhAIu4w+ruom7U6t9j8q3r3nZtkD57DV6/QWwi55UVLfgj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57785},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9970fa2d29cf49853cb4e1bb6933f64e8b45c609","scripts":{"build":"tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"digitalwr","email":"devs@lmwr.fr"},"_npmVersion":"10.9.2","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^10.4.5","sass":"^1.0.0","svgo":"^4.0.1","chalk":"^5.6.2","sharp":"^0.33.5","svg2ttf":"^6.0.3","fs-extra":"^11.2.0","nunjucks":"^3.2.4","svgstore":"^3.0.1","ttf2woff":"^3.0.0","ttf2woff2":"^7.0.0","svgicons2svgfont":"^13.0.0","vite-plugin-live-reload":"^3.0.0","vite-plugin-image-optimizer":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.0","@types/svg2ttf":"^5.0.3","@types/fs-extra":"^11.0.4","@types/nunjucks":"^3.2.6","@types/ttf2woff":"^2.0.4"},"peerDependencies":{"vite":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assets-toolkit_1.2.0_1779279141730_0.8320064456552625","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-01T15:22:44.862Z","modified":"2026-05-20T12:29:52.196Z","1.0.0":"2026-04-01T15:22:45.071Z","1.0.1":"2026-04-01T15:44:20.438Z","1.0.2":"2026-04-01T16:08:32.524Z","1.0.3":"2026-04-30T15:38:47.788Z","1.1.0":"2026-05-20T10:26:17.601Z","1.2.0":"2026-05-20T12:12:21.870Z"},"license":"MIT","description":"Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore","maintainers":[{"email":"devs@lmwr.fr","name":"digitalwr"},{"email":"mrebillard@agence-absolu.com","name":"mrebillard"}],"readme":"# @absolu/assets-toolkit\n[![npm](https://img.shields.io/npm/v/%40absolu%2Fassets-toolkit?style=flat-square)](https://www.npmjs.com/package/@absolu/assets-toolkit)\n\nToolkit Vite pour les pipelines d'assets front-end. Fournit une **factory de configuration Vite** et deux **plugins Vite** (iconfont & svgstore), pensés pour les projets utilisant Vite avec SCSS (typiquement des thèmes Drupal ou CMS).\n\n**Prérequis :** Node.js >= 22\n\n## Installation\n\n```bash\npnpm add -D @absolu/assets-toolkit\n```\n\nToutes les dépendances nécessaires (Sass, Vite, plugins d'optimisation) sont incluses — aucune peer dependency à installer manuellement.\n\n> **Peer dependency :** `vite >= 5.0.0` est requis uniquement si vous utilisez les plugins de manière standalone (voir [Utilisation standalone](#utilisation-standalone-des-plugins)) ou si vous importez directement depuis `vite` dans votre config.\n\n## Utilisation rapide\n\n### 1. Scripts `package.json`\n\nLa toolkit expose un binaire `assets-toolkit` qui encapsule Vite — pas besoin d'installer Vite en dépendance directe :\n\n```json\n{\n    \"scripts\": {\n        \"dev\": \"assets-toolkit -c ./vite.config.ts\",\n        \"build\": \"assets-toolkit build -c ./vite.config.ts\"\n    }\n}\n```\n\n### 2. `vite.config.ts`\n\n```ts\nimport { createViteConfig } from '@absolu/assets-toolkit'\nimport localConfig from './config.json' with { type: 'json' }\n\nexport default createViteConfig({\n    base: '/themes/custom/mon-theme/assets',\n    localConfig,\n})\n```\n\nC'est tout. Tous les plugins (iconfont, svgstore, optimisation images, live reload) sont **activés par défaut** avec des valeurs sensibles.\n\nLe fichier `config.json` (non versionné) contient la configuration locale, propre à chaque machine :\n\n```json\n{\n    \"server\": {\n        \"https\": {\n            \"key\": \"/chemin/vers/localhost-key.pem\",\n            \"cert\": \"/chemin/vers/localhost.pem\"\n        }\n    }\n}\n```\n\n## API\n\n### `createViteConfig(options)`\n\nFactory qui produit une configuration Vite complète.\n\n| Option | Type | Défaut | Description |\n|---|---|---|---|\n| `base` | `string` | — | **Requis.** Chemin de base pour le serveur de dev |\n| `localConfig` | `LocalConfig` | — | Configuration locale non versionnée (certificats HTTPS) |\n| `iconfont` | `IconfontOptions \\| false` | `{}` (activé) | Options du plugin iconfont. `false` pour désactiver |\n| `svgstore` | `SvgstoreOptions \\| false` | `{}` (activé) | Options du plugin svgstore. `false` pour désactiver |\n| `imagemin` | `boolean` | `true` | Activer l'optimisation des images raster (png, jpg, webp…) |\n| `liveReload` | `string[] \\| false` | `['../templates/**/*.twig']` | Glob patterns pour le live reload. `false` pour désactiver |\n| `entries` | `string[]` | voir ci-dessous | Glob patterns des fichiers d'entrée |\n| `entriesIgnore` | `string[]` | voir ci-dessous | Patterns à exclure |\n| `manualChunks` | `(id: string) => string \\| undefined` | — | Définition des manual chunks |\n| `plugins` | `Plugin[]` | — | Plugins Vite supplémentaires |\n\n#### Valeurs par défaut\n\n**Entrées :**\n\n- `src/scss/*.scss`\n- `src/scripts/*.{js,ts}`\n- `src/iconfonts/*.{woff2,woff}`\n- `src/images/**/*.{png,jpeg,jpg,gif,svg,webp}`\n\n**Exclusions :** `src/images/icons/**/*.svg`, `src/images/icons-sprite/**/*.svg`\n\n**Alias :** `@` → `src/`, `@images` → `src/images/`, `@fonts` → `src/fonts/`\n\n**Sortie :** `dist/` avec organisation automatique (css, scripts, images, iconfonts, fonts)\n\n#### Désactiver des plugins\n\n```ts\nexport default createViteConfig({\n    base: '/themes/custom/mon-theme/assets',\n    iconfont: false,\n    svgstore: false,\n    liveReload: false,\n    imagemin: false,\n})\n```\n\n#### Personnaliser des plugins\n\n```ts\nexport default createViteConfig({\n    base: '/themes/custom/mon-theme/assets',\n    localConfig,\n    iconfont: {\n        svgs: 'src/images/icons/**/*.svg',\n        fontName: 'iconfont',\n        scssDir: 'src/scss/base/iconfonts',\n        iconClassName: 'icon',\n        fontPath: '@/iconfonts/',\n    },\n    svgstore: {\n        srcDir: 'src/images/icons-sprite',\n        targetFile: 'src/images/sprite.svg',\n        symbolId: '[name]',\n    },\n    liveReload: ['../templates/**/*.twig'],\n    entries: [\n        'src/scss/*.scss',\n        'src/scripts/*.js',\n        'src/scripts/*.ts',\n        'src/iconfonts/*.{woff2,woff}',\n        'src/images/**/*.{png,jpeg,jpg,gif,svg,webp}',\n    ],\n    entriesIgnore: [\n        'src/images/icons/**/*.svg',\n        'src/images/icons-sprite/**/*.svg',\n    ],\n})\n```\n\n### `VitePluginIconfont(options)`\n\nPlugin Vite qui convertit des icônes SVG en font (SVG → TTF → WOFF/WOFF2) et génère les fichiers SCSS correspondants via des templates Nunjucks. Inclut un cache basé sur le hash des fichiers sources pour éviter les rebuilds inutiles.\n\n| Option | Type | Défaut | Description |\n|---|---|---|---|\n| `svgs` | `string` | `src/images/icons/**/*.svg` | Glob pattern des fichiers SVG sources |\n| `fontName` | `string` | `iconfont` | Nom de la font générée |\n| `scssDir` | `string` | `src/scss/base/iconfonts` | Dossier de sortie des fichiers SCSS |\n| `iconClassName` | `string` | `icon` | Nom de la classe CSS de base |\n| `fontPath` | `string` | `@/iconfonts/` | Chemin relatif vers la font dans le CSS |\n\n### `VitePluginSvgstore(options)`\n\nPlugin Vite qui fusionne des fichiers SVG en un sprite SVG unique, optimisé avec SVGO.\n\n| Option | Type | Défaut | Description |\n|---|---|---|---|\n| `srcDir` | `string` | `src/images/icons-sprite` | Dossier source des SVG |\n| `targetFile` | `string` | `src/images/sprite.svg` | Fichier de sortie du sprite |\n| `symbolId` | `string` | `[name]` | Pattern pour l'id des symboles |\n\n## Utilisation standalone des plugins\n\nLes plugins peuvent être utilisés indépendamment de la factory. Dans ce cas, `vite` doit être installé en devDependency directe :\n\n```bash\npnpm add -D vite\n```\n\n```ts\nimport { VitePluginIconfont, VitePluginSvgstore } from '@absolu/assets-toolkit'\nimport { defineConfig } from 'vite'\n\nexport default defineConfig({\n    plugins: [\n        VitePluginIconfont({ fontName: 'my-icons' }),\n        VitePluginSvgstore({ srcDir: 'src/sprites' }),\n    ],\n})\n```\n\n## Développement local (test avec pnpm link)\n\nPour tester la toolkit dans un projet consommateur avant publication :\n\n```bash\n# 1. Builder la lib\ncd /chemin/vers/assets-toolkit\npnpm run build\n\n# 2. Lier dans le projet consommateur\ncd /chemin/vers/projet-conso\npnpm link /chemin/vers/assets-toolkit\n```\n\nLes scripts du conso utilisent `assets-toolkit` — Vite est résolu depuis les `node_modules` de la toolkit, pas besoin de l'installer dans le conso :\n\n```json\n{\n    \"scripts\": {\n        \"dev\": \"assets-toolkit -c ./vite.config.ts\",\n        \"build\": \"assets-toolkit build -c ./vite.config.ts\"\n    }\n}\n```\n\nAprès chaque modification de la lib, rebuilder avant de relancer le conso :\n\n```bash\ncd /chemin/vers/assets-toolkit && pnpm run build\n```\n\n> **Note :** En mode `pnpm link`, l'optimisation des images raster est désactivée (`vite-plugin-image-optimizer` ne trouve pas `sharp` à cause de l'isolation pnpm). Pour l'activer en dev, ajouter `sharp` en devDependency du conso (`pnpm add -D sharp`). Ce problème n'existe pas en installation réelle depuis npm.\n\n## Licence\n\nMIT","readmeFilename":"README.md"}