@rpgjs/vite 5.0.0-alpha.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 ADDED
@@ -0,0 +1,66 @@
1
+ # @rpgjs/vite
2
+
3
+ Plugins Vite pour RPGJS.
4
+
5
+ ## dataFolderPlugin
6
+
7
+ Plugin qui permet de servir un dossier de données en mode développement et de le copier dans le dossier assets lors du build.
8
+
9
+ ### Utilisation
10
+
11
+ ```typescript
12
+ import { defineConfig } from 'vite';
13
+ import { dataFolderPlugin } from '@rpgjs/vite';
14
+
15
+ export default defineConfig({
16
+ plugins: [
17
+ dataFolderPlugin({
18
+ sourceFolder: './game-data',
19
+ publicPath: '/data',
20
+ buildOutputPath: 'assets/data'
21
+ })
22
+ ]
23
+ });
24
+ ```
25
+
26
+ ### Options
27
+
28
+ - `sourceFolder` (string) : Dossier source contenant les fichiers de données (TMX, TSX, images)
29
+ - `publicPath` (string, optionnel) : Préfixe du chemin public pour accéder aux fichiers de données (défaut: '/data')
30
+ - `buildOutputPath` (string, optionnel) : Dossier cible dans la sortie de build (défaut: 'assets/data')
31
+ - `allowedExtensions` (string[], optionnel) : Extensions de fichiers autorisées (défaut: ['.tmx', '.tsx', '.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg'])
32
+
33
+ ### Fonctionnement
34
+
35
+ **Mode développement :**
36
+ - Sert les fichiers via un middleware Vite
37
+ - Accessible via des requêtes HTTP au chemin public configuré
38
+ - Exemple : `http://localhost:3000/data/maps/level1.tmx`
39
+
40
+ **Mode build :**
41
+ - Copie automatiquement tous les fichiers autorisés dans le dossier de sortie
42
+ - Les fichiers sont disponibles dans le dossier `assets/data` du build final
43
+
44
+ ### Types de fichiers supportés
45
+
46
+ - **TMX** : Fichiers de cartes Tiled
47
+ - **TSX** : Fichiers de tilesets Tiled
48
+ - **Images** : PNG, JPG, JPEG, GIF, WebP, SVG
49
+ ## directivePlugin
50
+
51
+ Plugin inspiré de Next.js permettant d'utiliser les directives `use client` et `use server` afin de générer un code différent selon le côté client ou serveur.
52
+
53
+ ### Utilisation
54
+
55
+ ```typescript
56
+ import { defineConfig } from 'vite'
57
+ import { directivePlugin } from '@rpgjs/vite'
58
+
59
+ export default defineConfig({
60
+ plugins: [
61
+ directivePlugin({ side: 'client' }) // ou 'server'
62
+ ]
63
+ })
64
+ ```
65
+
66
+ La directive placée en début de fichier ou au sein d'une fonction permet d'inclure ou non le code lors de la transformation.
@@ -0,0 +1,5 @@
1
+ import { Plugin } from 'vite';
2
+ export interface DirectivePluginOptions {
3
+ side: 'client' | 'server';
4
+ }
5
+ export declare function directivePlugin(options: DirectivePluginOptions): Plugin;
@@ -0,0 +1,4 @@
1
+ export { tiledMapFolderPlugin, type DataFolderPluginOptions } from './tiled-map-folder-plugin';
2
+ export { rpgjsModuleViteConfig } from './module-config';
3
+ export { directivePlugin, type DirectivePluginOptions } from './directive-plugin';
4
+ export { removeImportsPlugin, type RemoveImportsPluginOptions } from './remove-imports-plugin';