|
1 | | -<!-- |
2 | | -Get your module up and running quickly. |
3 | | -
|
4 | | -Find and replace all on all files (CMD+SHIFT+F): |
5 | | -- Name: My Module |
6 | | -- Package name: my-module |
7 | | -- Description: My new Nuxt module |
8 | | ---> |
9 | | - |
10 | | -# My Module |
| 1 | +# Module VueDsfr pour Nuxt |
11 | 2 |
|
12 | 3 | [![npm version][npm-version-src]][npm-version-href] |
13 | 4 | [![npm downloads][npm-downloads-src]][npm-downloads-href] |
14 | 5 | [![License][license-src]][license-href] |
15 | 6 | [![Nuxt][nuxt-src]][nuxt-href] |
16 | 7 |
|
17 | | -My new Nuxt module for doing amazing things. |
| 8 | +Ce module facilite l’utilisation de la bibliothèque VueDsfr dans un projet Nuxt 3. |
18 | 9 |
|
19 | | -- [✨ Release Notes](/CHANGELOG.md) |
20 | | -<!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) --> |
21 | | -<!-- - [📖 Documentation](https://example.com) --> |
| 10 | +- [✨ Release Notes](/CHANGELOG.md) |
| 11 | +- [🏀 Online playground](https://stackblitz.com/github/laruiss/vue-dsfr-nuxt-module?file=playground%2Fapp.vue) |
| 12 | +- [📖 Documentation](https://docs.vue-ds.fr/nuxt) |
22 | 13 |
|
23 | 14 | ## Features |
24 | 15 |
|
25 | 16 | <!-- Highlight some of the features your module provide here --> |
26 | | -- ⛰ Foo |
27 | | -- 🚠 Bar |
28 | | -- 🌲 Baz |
| 17 | +- 🪄 Imports automagiques des composables VueDsfr |
| 18 | +- 🪄 Imports automagiques des composants VueDsfr |
| 19 | +- ✨ Facilitation de l’utilisation des icônes de [Oh, Vue Icons](https://oh-vue-icons.netlify.app/) |
29 | 20 |
|
30 | | -## Quick Setup |
| 21 | +## Configuration rapide |
31 | 22 |
|
32 | | -1. Add `my-module` dependency to your project |
| 23 | +1. Ajouter la dépendance `vue-dsfr-nuxt-module` au projet |
33 | 24 |
|
34 | 25 | ```bash |
35 | | -# Using pnpm |
36 | | -pnpm add -D my-module |
| 26 | +# Avec pnpm |
| 27 | +pnpm add -D vue-dsfr-nuxt-module |
37 | 28 |
|
38 | | -# Using yarn |
39 | | -yarn add --dev my-module |
| 29 | +# Avec yarn |
| 30 | +yarn add --dev vue-dsfr-nuxt-module |
40 | 31 |
|
41 | | -# Using npm |
42 | | -npm install --save-dev my-module |
| 32 | +# Avec npm |
| 33 | +npm i -D vue-dsfr-nuxt-module |
43 | 34 | ``` |
44 | 35 |
|
45 | | -2. Add `my-module` to the `modules` section of `nuxt.config.ts` |
| 36 | +N.B. : Vous devriez déjà avoir les dépendances `@gouvminint/vue-dsfr` et `@gouvfr/dsfr` |
| 37 | + |
| 38 | +2. Ajouter `vue-dsfr-nuxt-module` dans la section `modules` de `nuxt.config.ts` |
46 | 39 |
|
47 | | -```js |
| 40 | +```ts |
48 | 41 | export default defineNuxtConfig({ |
49 | 42 | modules: [ |
50 | | - 'my-module' |
| 43 | + 'vue-dsfr-nuxt-module' |
51 | 44 | ] |
52 | 45 | }) |
53 | 46 | ``` |
54 | 47 |
|
55 | | -That's it! You can now use My Module in your Nuxt app ✨ |
| 48 | +3. Ajouter le CSS de DSFR dans la section `css` de `nuxt.config.ts` |
| 49 | + |
| 50 | +Rappel : Vous devriez déjà avoir les dépendances `@gouvminint/vue-dsfr` et `@gouvfr/dsfr` |
| 51 | + |
| 52 | +```ts |
| 53 | +export default defineNuxtConfig({ |
| 54 | + modules: [ |
| 55 | + 'vue-dsfr-nuxt-module' |
| 56 | + ], |
| 57 | + css: [ |
| 58 | + '@gouvfr/dsfr/dist/core/core.main.min.css', // Le CSS minimal du DSFR |
| 59 | + '@gouvfr/dsfr/dist/component/component.main.min.css', // Styles de tous les composants du DSFR |
| 60 | + '@gouvfr/dsfr/dist/utility/utility.main.min.css', // Classes utilitaires : les composants de VueDsfr en ont besoin, contient aussi les icônes |
| 61 | + |
| 62 | + '@gouvfr/dsfr/dist/scheme/scheme.min.css', // Facultatif : Si les thèmes sont utilisés (thème sombre, thème en bernes) |
| 63 | + ], |
| 64 | +}) |
| 65 | +``` |
| 66 | + |
| 67 | +4. Facultatif : ajouter des icônes à utiliser avec OhVueIcon |
| 68 | + |
| 69 | +```ts |
| 70 | +import * as icons from './icons' |
| 71 | + |
| 72 | +export default defineNuxtConfig({ |
| 73 | + modules: [ |
| 74 | + 'vue-dsfr-nuxt-module' |
| 75 | + ], |
| 76 | + css: [ |
| 77 | + '@gouvfr/dsfr/dist/core/core.main.min.css', // Le CSS minimal du DSFR |
| 78 | + '@gouvfr/dsfr/dist/component/component.main.min.css', // Styles de tous les composants du DSFR |
| 79 | + '@gouvfr/dsfr/dist/utility/utility.main.min.css', // Classes utilitaires : les composants de VueDsfr en ont besoin, contient aussi les icônes |
| 80 | + |
| 81 | + '@gouvfr/dsfr/dist/scheme/scheme.min.css', // Facultatif : Si les thèmes sont utilisés (thème sombre, thème en bernes) |
| 82 | + ], |
| 83 | + runtimeConfig: { |
| 84 | + public: { |
| 85 | + vueDsfr: { |
| 86 | + icons: Object.values(icons), |
| 87 | + }, |
| 88 | + }, |
| 89 | + }, |
| 90 | +}) |
| 91 | +``` |
| 92 | + |
| 93 | +Et ajouter un fichier `icons.ts` à la racine dans lequel sont réexportées depuis `'oh-vue-icons/icons'` les icônes utilisées : |
| 94 | + |
| 95 | +```ts |
| 96 | +export { |
| 97 | + RiFlagLine, |
| 98 | + RiHome2Line, |
| 99 | +} from 'oh-vue-icons/icons' |
| 100 | +``` |
| 101 | + |
| 102 | +Et voilà ! Vous êtes prêts à utiliser VueDsfr dans votre app Nuxt ✨ |
56 | 103 |
|
57 | 104 | ## Development |
58 | 105 |
|
@@ -81,14 +128,14 @@ npm run release |
81 | 128 | ``` |
82 | 129 |
|
83 | 130 | <!-- Badges --> |
84 | | -[npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=18181B&colorB=28CF8D |
85 | | -[npm-version-href]: https://npmjs.com/package/my-module |
| 131 | +[npm-version-src]: https://img.shields.io/npm/v/vue-dsfr-nuxt-module/latest.svg?style=flat&colorA=18181B&colorB=28CF8D |
| 132 | +[npm-version-href]: https://npmjs.com/package/vue-dsfr-nuxt-module |
86 | 133 |
|
87 | | -[npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D |
88 | | -[npm-downloads-href]: https://npmjs.com/package/my-module |
| 134 | +[npm-downloads-src]: https://img.shields.io/npm/dm/vue-dsfr-nuxt-module.svg?style=flat&colorA=18181B&colorB=28CF8D |
| 135 | +[npm-downloads-href]: https://npmjs.com/package/vue-dsfr-nuxt-module |
89 | 136 |
|
90 | | -[license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D |
91 | | -[license-href]: https://npmjs.com/package/my-module |
| 137 | +[license-src]: https://img.shields.io/npm/l/vue-dsfr-nuxt-module.svg?style=flat&colorA=18181B&colorB=28CF8D |
| 138 | +[license-href]: https://npmjs.com/package/vue-dsfr-nuxt-module |
92 | 139 |
|
93 | 140 | [nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js |
94 | 141 | [nuxt-href]: https://nuxt.com |
0 commit comments