@absolu/assets-toolkit 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,24 +3,34 @@
3
3
 
4
4
  Toolkit 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).
5
5
 
6
+ **Prérequis :** Node.js >= 22
7
+
6
8
  ## Installation
7
9
 
8
10
  ```bash
9
- npm install @absolu/assets-toolkit@latest
11
+ pnpm add -D @absolu/assets-toolkit
10
12
  ```
11
13
 
12
- ### Peer dependencies
14
+ Toutes les dépendances nécessaires (Sass, Vite, plugins d'optimisation) sont incluses — aucune peer dependency à installer manuellement.
13
15
 
14
- | Paquet | Requis |
15
- |---|---|
16
- | `vite` >= 5.0.0 | oui |
17
- | `sass` >= 1.0.0 | oui |
18
- | `vite-plugin-imagemin` >= 0.6.0 | optionnel |
19
- | `vite-plugin-live-reload` >= 3.0.0 | optionnel |
16
+ > **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.
20
17
 
21
18
  ## Utilisation rapide
22
19
 
23
- Créez un fichier `vite.config.ts` à la racine de votre projet :
20
+ ### 1. Scripts `package.json`
21
+
22
+ La toolkit expose un binaire `assets-toolkit` qui encapsule Vite — pas besoin d'installer Vite en dépendance directe :
23
+
24
+ ```json
25
+ {
26
+ "scripts": {
27
+ "dev": "assets-toolkit -c ./vite.config.ts",
28
+ "build": "assets-toolkit build -c ./vite.config.ts"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### 2. `vite.config.ts`
24
34
 
25
35
  ```ts
26
36
  import { createViteConfig } from '@absolu/assets-toolkit'
@@ -32,9 +42,9 @@ export default createViteConfig({
32
42
  })
33
43
  ```
34
44
 
35
- C'est tout. Tous les plugins (iconfont, svgstore, live reload) sont **activés par défaut** avec des valeurs sensibles. Vous pouvez les personnaliser ou les désactiver individuellement (voir API ci-dessous).
45
+ C'est tout. Tous les plugins (iconfont, svgstore, optimisation images, live reload) sont **activés par défaut** avec des valeurs sensibles.
36
46
 
37
- Le fichier `config.json` (non versionné) contient uniquement la configuration locale, propre à chaque machine :
47
+ Le fichier `config.json` (non versionné) contient la configuration locale, propre à chaque machine :
38
48
 
39
49
  ```json
40
50
  {
@@ -51,30 +61,21 @@ Le fichier `config.json` (non versionné) contient uniquement la configuration l
51
61
 
52
62
  ### `createViteConfig(options)`
53
63
 
54
- Factory qui produit une configuration Vite complète avec des valeurs par défaut sensibles (globs d'entrée, chemins de sortie, alias, plugins).
64
+ Factory qui produit une configuration Vite complète.
55
65
 
56
66
  | Option | Type | Défaut | Description |
57
67
  |---|---|---|---|
58
- | `base` | `string` | — | **Requis.** Chemin de base pour le serveur de dev (ex. `/themes/custom/mon-theme/assets`) |
68
+ | `base` | `string` | — | **Requis.** Chemin de base pour le serveur de dev |
59
69
  | `localConfig` | `LocalConfig` | — | Configuration locale non versionnée (certificats HTTPS) |
60
70
  | `iconfont` | `IconfontOptions \| false` | `{}` (activé) | Options du plugin iconfont. `false` pour désactiver |
61
71
  | `svgstore` | `SvgstoreOptions \| false` | `{}` (activé) | Options du plugin svgstore. `false` pour désactiver |
62
- | `imagemin` | `boolean` | `true` | Activer le plugin imagemin |
72
+ | `imagemin` | `boolean` | `true` | Activer l'optimisation des images raster (png, jpg, webp…) |
63
73
  | `liveReload` | `string[] \| false` | `['../templates/**/*.twig']` | Glob patterns pour le live reload. `false` pour désactiver |
64
74
  | `entries` | `string[]` | voir ci-dessous | Glob patterns des fichiers d'entrée |
65
75
  | `entriesIgnore` | `string[]` | voir ci-dessous | Patterns à exclure |
66
76
  | `manualChunks` | `(id: string) => string \| undefined` | — | Définition des manual chunks |
67
77
  | `plugins` | `Plugin[]` | — | Plugins Vite supplémentaires |
68
78
 
69
- #### `localConfig`
70
-
71
- Configuration locale, typiquement chargée depuis un `config.json` non versionné.
72
-
73
- | Propriété | Type | Description |
74
- |---|---|---|
75
- | `server.https.key` | `string` | Chemin vers le fichier clé privée du certificat SSL |
76
- | `server.https.cert` | `string` | Chemin vers le fichier certificat SSL |
77
-
78
79
  #### Valeurs par défaut
79
80
 
80
81
  **Entrées :**
@@ -95,10 +96,10 @@ Configuration locale, typiquement chargée depuis un `config.json` non versionn
95
96
  ```ts
96
97
  export default createViteConfig({
97
98
  base: '/themes/custom/mon-theme/assets',
98
- iconfont: false, // désactive la génération d'iconfont
99
- svgstore: false, // désactive la génération du sprite SVG
100
- liveReload: false, // désactive le live reload
101
- imagemin: false, // désactive l'optimisation d'images
99
+ iconfont: false,
100
+ svgstore: false,
101
+ liveReload: false,
102
+ imagemin: false,
102
103
  })
103
104
  ```
104
105
 
@@ -121,7 +122,6 @@ export default createViteConfig({
121
122
  symbolId: '[name]',
122
123
  },
123
124
  liveReload: ['../templates/**/*.twig'],
124
- imagemin: true,
125
125
  entries: [
126
126
  'src/scss/*.scss',
127
127
  'src/scripts/*.js',
@@ -156,11 +156,15 @@ Plugin Vite qui fusionne des fichiers SVG en un sprite SVG unique, optimisé ave
156
156
  |---|---|---|---|
157
157
  | `srcDir` | `string` | `src/images/icons-sprite` | Dossier source des SVG |
158
158
  | `targetFile` | `string` | `src/images/sprite.svg` | Fichier de sortie du sprite |
159
- | `symbolId` | `string` | `[name]` | Pattern pour l'id des symboles (`[name]` sera remplacé) |
159
+ | `symbolId` | `string` | `[name]` | Pattern pour l'id des symboles |
160
160
 
161
161
  ## Utilisation standalone des plugins
162
162
 
163
- Les plugins peuvent être utilisés indépendamment de la factory :
163
+ Les plugins peuvent être utilisés indépendamment de la factory. Dans ce cas, `vite` doit être installé en devDependency directe :
164
+
165
+ ```bash
166
+ pnpm add -D vite
167
+ ```
164
168
 
165
169
  ```ts
166
170
  import { VitePluginIconfont, VitePluginSvgstore } from '@absolu/assets-toolkit'
@@ -168,19 +172,45 @@ import { defineConfig } from 'vite'
168
172
 
169
173
  export default defineConfig({
170
174
  plugins: [
171
- VitePluginIconfont({
172
- fontName: 'my-icons',
173
- scssDir: 'src/scss/icons',
174
- iconClassName: 'icon',
175
- }),
176
- VitePluginSvgstore({
177
- srcDir: 'src/sprites',
178
- symbolId: 'icon-[name]',
179
- }),
175
+ VitePluginIconfont({ fontName: 'my-icons' }),
176
+ VitePluginSvgstore({ srcDir: 'src/sprites' }),
180
177
  ],
181
178
  })
182
179
  ```
183
180
 
181
+ ## Développement local (test avec pnpm link)
182
+
183
+ Pour tester la toolkit dans un projet consommateur avant publication :
184
+
185
+ ```bash
186
+ # 1. Builder la lib
187
+ cd /chemin/vers/assets-toolkit
188
+ pnpm run build
189
+
190
+ # 2. Lier dans le projet consommateur
191
+ cd /chemin/vers/projet-conso
192
+ pnpm link /chemin/vers/assets-toolkit
193
+ ```
194
+
195
+ Les 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 :
196
+
197
+ ```json
198
+ {
199
+ "scripts": {
200
+ "dev": "assets-toolkit -c ./vite.config.ts",
201
+ "build": "assets-toolkit build -c ./vite.config.ts"
202
+ }
203
+ }
204
+ ```
205
+
206
+ Après chaque modification de la lib, rebuilder avant de relancer le conso :
207
+
208
+ ```bash
209
+ cd /chemin/vers/assets-toolkit && pnpm run build
210
+ ```
211
+
212
+ > **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.
213
+
184
214
  ## Licence
185
215
 
186
- MIT
216
+ MIT
package/bin/cli.js ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'child_process';
3
+ import { createRequire } from 'module';
4
+ import { dirname, join } from 'path';
5
+
6
+ const require = createRequire(import.meta.url);
7
+ const viteRoot = dirname(require.resolve('vite/package.json'));
8
+ const viteBin = join(viteRoot, 'bin/vite.js');
9
+
10
+ spawn('node', [viteBin, ...process.argv.slice(2)], { stdio: 'inherit' })
11
+ .on('exit', (code) => process.exit(code ?? 0));
@@ -1,3 +1,3 @@
1
1
  import type { CreateViteConfigOptions } from './types.js';
2
- export declare function createViteConfig(options: CreateViteConfigOptions): import("vite").UserConfig;
2
+ export declare function createViteConfig(options: CreateViteConfigOptions): Promise<import("vite").UserConfig>;
3
3
  //# sourceMappingURL=create-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-config.d.ts","sourceRoot":"","sources":["../src/create-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAwBxD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,6BAsIhE"}
1
+ {"version":3,"file":"create-config.d.ts","sourceRoot":"","sources":["../src/create-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAwBxD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,sCAgItE"}
@@ -17,7 +17,7 @@ function getFiles(entries, ignore) {
17
17
  });
18
18
  return input;
19
19
  }
20
- export function createViteConfig(options) {
20
+ export async function createViteConfig(options) {
21
21
  const cwd = process.cwd();
22
22
  const entries = options.entries ?? [
23
23
  'src/scss/*.scss',
@@ -32,24 +32,26 @@ export function createViteConfig(options) {
32
32
  ];
33
33
  // Construction des plugins
34
34
  const plugins = [];
35
+ const inputFiles = getFiles(entries, entriesIgnore);
35
36
  // Live reload
36
37
  if (options.liveReload !== false) {
37
38
  const liveReloadPatterns = options.liveReload ?? ['../templates/**/*.twig'];
38
39
  try {
39
- const { default: LiveReloadPlugin } = require('vite-plugin-live-reload');
40
+ const { default: LiveReloadPlugin } = await import('vite-plugin-live-reload');
40
41
  plugins.push(LiveReloadPlugin(liveReloadPatterns.map(p => resolve(cwd, p))));
41
42
  }
42
- catch { /* peer dep non installée */ }
43
+ catch { /* dep non installée */ }
43
44
  }
44
- // Imagemin (optionnel)
45
+ // Optimisation des images raster (optionnel) — uniquement si des images raster sont présentes
45
46
  if (options.imagemin !== false) {
46
- try {
47
- const { default: ImageminPlugin } = require('vite-plugin-imagemin');
48
- plugins.push(ImageminPlugin({
49
- filter: (file) => /\.(png|jpe?g|gif|tiff|webp)$/i.test(file),
50
- }));
47
+ const hasRasterImages = Object.values(inputFiles).some(f => /\.(png|jpe?g|gif|tiff|webp)$/i.test(f));
48
+ if (hasRasterImages) {
49
+ try {
50
+ const { ViteImageOptimizer } = await import('vite-plugin-image-optimizer');
51
+ plugins.push(ViteImageOptimizer({ exclude: /\.svg$/i }));
52
+ }
53
+ catch { /* dep non installée */ }
51
54
  }
52
- catch { /* peer dep non installée */ }
53
55
  }
54
56
  // Iconfont
55
57
  if (options.iconfont !== false) {
@@ -81,21 +83,13 @@ export function createViteConfig(options) {
81
83
  '@fonts': resolve(cwd, 'src/fonts'),
82
84
  }
83
85
  },
84
- esbuild: {
85
- target: 'esnext',
86
- },
87
- optimizeDeps: {
88
- esbuildOptions: {
89
- target: 'esnext'
90
- }
91
- },
92
86
  build: {
93
87
  target: 'esnext',
94
88
  manifest: true,
95
89
  outDir: 'dist',
96
90
  copyPublicDir: true,
97
91
  rollupOptions: {
98
- input: getFiles(entries, entriesIgnore),
92
+ input: inputFiles,
99
93
  output: {
100
94
  manualChunks: options.manualChunks,
101
95
  chunkFileNames: () => 'scripts/chunks/[name]-[hash].js',
@@ -1 +1 @@
1
- {"version":3,"file":"create-config.js","sourceRoot":"","sources":["../src/create-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAGlC,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAC1E,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAM1E,SAAS,QAAQ,CAAC,OAAiB,EAAE,MAAgB;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACjG,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI;QAC/B,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,8BAA8B;QAC9B,6CAA6C;KAChD,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI;QAC3C,2BAA2B;QAC3B,kCAAkC;KACrC,CAAC;IAEF,2BAA2B;IAC3B,MAAM,OAAO,GAAU,EAAE,CAAC;IAE1B,cAAc;IACd,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC5E,IAAI,CAAC;YACD,MAAM,EAAC,OAAO,EAAE,gBAAgB,EAAC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,EAAC,OAAO,EAAE,cAAc,EAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxB,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;aACvE,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW;IACX,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,WAAW;IACX,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,YAAY,CAAC;QAChB,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;QACjE,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE;YACJ,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F;QACD,OAAO,EAAE;YACL,KAAK,EAAE;gBACH,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC;gBACrC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;gBACxB,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC;aACtC;SACJ;QACD,OAAO,EAAE;YACL,MAAM,EAAE,QAAQ;SACnB;QACD,YAAY,EAAE;YACV,cAAc,EAAE;gBACZ,MAAM,EAAE,QAAQ;aACnB;SACJ;QACD,KAAK,EAAE;YACH,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE;gBACX,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBACvC,MAAM,EAAE;oBACJ,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,cAAc,EAAE,GAAG,EAAE,CAAC,iCAAiC;oBACvD,cAAc,EAAE,CAAC,SAA2B,EAAE,EAAE;wBAC5C,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC9C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;4BACf,OAAO,WAAW,IAAI,KAAK,CAAC;wBAChC,CAAC;wBACD,OAAO,gBAAgB,CAAC;oBAC5B,CAAC;oBACD,cAAc,EAAE,CAAC,SAAuE,EAAE,EAAE;wBACxF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBAE1D,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;4BAChB,OAAO,gBAAgB,CAAC;wBAC5B,CAAC;wBACD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gCACtF,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;gCAChC,CAAC,CAAC,EAAE,CAAC;4BACT,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gCACvD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gCACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gCACvC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oCACxC,OAAO,4BAA4B,CAAC;gCACxC,CAAC;gCACD,OAAO,UAAU,QAAQ,eAAe,CAAC;4BAC7C,CAAC;4BACD,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gCACxC,OAAO,4BAA4B,CAAC;4BACxC,CAAC;4BACD,OAAO,qBAAqB,CAAC;wBACjC,CAAC;wBACD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;4BAC/F,OAAO,wBAAwB,CAAC;wBACpC,CAAC;wBACD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;4BAC3F,OAAO,oBAAoB,CAAC;wBAChC,CAAC;wBACD,OAAO,cAAc,CAAC;oBAC1B,CAAC;oBACD,MAAM,EAAE,IAAI;iBACf;aACJ;SACJ;KACJ,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"create-config.js","sourceRoot":"","sources":["../src/create-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolu/assets-toolkit",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Toolkit Vite pour les pipelines d'assets front-end : factory de configuration, plugins iconfont et svgstore",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,24 +11,35 @@
11
11
  "types": "./dist/index.d.ts"
12
12
  }
13
13
  },
14
+ "bin": {
15
+ "assets-toolkit": "./bin/cli.js"
16
+ },
14
17
  "files": [
18
+ "bin",
15
19
  "dist"
16
20
  ],
17
21
  "scripts": {
18
22
  "build": "tsc && cp -r src/plugins/iconfont/templates dist/plugins/iconfont/",
19
- "prepublishOnly": "npm run build"
23
+ "prepublishOnly": "pnpm run build"
20
24
  },
21
25
  "dependencies": {
22
26
  "chalk": "^5.6.2",
23
27
  "fs-extra": "^11.2.0",
24
28
  "glob": "^10.4.5",
25
29
  "nunjucks": "^3.2.4",
30
+ "sass": "^1.0.0",
31
+ "sharp": "^0.33.5",
26
32
  "svg2ttf": "^6.0.3",
27
33
  "svgicons2svgfont": "^13.0.0",
28
34
  "svgo": "^4.0.1",
29
35
  "svgstore": "^3.0.1",
30
36
  "ttf2woff": "^3.0.0",
31
- "ttf2woff2": "^7.0.0"
37
+ "ttf2woff2": "^7.0.0",
38
+ "vite-plugin-image-optimizer": "^1.1.9",
39
+ "vite-plugin-live-reload": "^3.0.0"
40
+ },
41
+ "peerDependencies": {
42
+ "vite": ">=5.0.0"
32
43
  },
33
44
  "devDependencies": {
34
45
  "@types/fs-extra": "^11.0.4",
@@ -36,22 +47,10 @@
36
47
  "@types/nunjucks": "^3.2.6",
37
48
  "@types/svg2ttf": "^5.0.3",
38
49
  "@types/ttf2woff": "^2.0.4",
39
- "typescript": "^5.3.3",
40
- "vite": "^6.4.1"
50
+ "typescript": "^5.3.3"
41
51
  },
42
- "peerDependencies": {
43
- "sass": ">=1.0.0",
44
- "vite": ">=5.0.0",
45
- "vite-plugin-imagemin": ">=0.6.0",
46
- "vite-plugin-live-reload": ">=3.0.0"
47
- },
48
- "peerDependenciesMeta": {
49
- "vite-plugin-imagemin": {
50
- "optional": true
51
- },
52
- "vite-plugin-live-reload": {
53
- "optional": true
54
- }
52
+ "engines": {
53
+ "node": ">=22"
55
54
  },
56
55
  "license": "MIT"
57
56
  }