Skip to content

Commit 55310c3

Browse files
Merge pull request #12 from vuejs-fr/build-config
Traduction de `build-config.md`
2 parents 09fff3c + 6408a1e commit 55310c3

File tree

2 files changed

+64
-64
lines changed

2 files changed

+64
-64
lines changed

en/SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- [Récupération de données et état](data.md)
66
- [Hydratation côté client](hydration.md)
77
- [Introduction au moteur de dépaquetage](bundle-renderer.md)
8-
- [Configuration de pré-compilation (En)](build-config.md)
8+
- [Configuration de pré-compilation](build-config.md)
99
- [Gestion des CSS (En)](css.md)
1010
- [Gestion des entêtes (En)](head.md)
1111
- [Mise en cache (En)](caching.md)

en/build-config.md

+63-63
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Configuration de pré-compilation (En) <br><br> *Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vue-ssr-docs).*
1+
# Configuration de pré-compilation
22

3-
We will assume you already know how to configure webpack for a client-only project. The config for an SSR project will be largely similar, but we suggest breaking the config into three files: *base*, *client* and *server*. The base config contains config shared for both environments, such as output path, aliases, and loaders. The server config and client config can simply extend the base config using [webpack-merge](https://github.com/survivejs/webpack-merge).
3+
Nous allons suposez que vous savez déjà comment configurer webpack pour un projet uniquement client. La configuration pour un projet avec du SSR va être en grande partie similaire, mais nous vous suggérons de séparer vos configurations en trois fichiers : *base*, *client* et *server*. La configuration de base contient la configuration partagée par les deux environnements, comme les chemins de sortie, les aliases et les loaders. La configuration du serveur et la configuration du client peut simplement étendre la configuration de base en utilisant [webpack-merge](https://github.com/survivejs/webpack-merge).
44

5-
## Server Config
5+
## Configuration serveur
66

7-
The server config is meant for generating the server bundle that will be passed to `createBundleRenderer`. It should look like this:
7+
La configuration serveur est destinée à générer le paquetage serveur qui va être passé à `createBundleRenderer`. Elle devrait ressembler à cela :
88

99
``` js
1010
const merge = require('webpack-merge')
@@ -13,76 +13,76 @@ const baseConfig = require('./webpack.base.config.js')
1313
const VueSSRServerPlugin = require('vue-server-renderer/server-plugin')
1414

1515
module.exports = merge(baseConfig, {
16-
// Point entry to your app's server entry file
16+
// Fichier d'entrée serveur de l'application
1717
entry: '/path/to/entry-server.js',
1818

19-
// This allows webpack to handle dynamic imports in a Node-appropriate
20-
// fashion, and also tells `vue-loader` to emit server-oriented code when
21-
// compiling Vue components.
19+
// Cela permet à webpack de gérer les imports dynamiques d'une manière
20+
// approprié pour Node.js, et dit également à `vue-loader` d'émettre un code approprié pour le serveur
21+
// lors de la compilation du composant Vue.
2222
target: 'node',
2323

24-
// For bundle renderer source map support
24+
// Pour le support des sources maps des paquetages
2525
devtool: 'source-map',
2626

27-
// This tells the server bundle to use Node-style exports
27+
// Cela dit au paquetage serveur d'utiliser les exports au format Node.js
2828
output: {
2929
libraryTarget: 'commonjs2'
3030
},
3131

3232
// https://webpack.js.org/configuration/externals/#function
3333
// https://github.com/liady/webpack-node-externals
34-
// Externalize app dependencies. This makes the server build much faster
35-
// and generates a smaller bundle file.
34+
// Externalise les dépendances de l'application. Cela rend le build serveur plus rapide
35+
// et génère un fichier de paquetage plus petit.
3636
externals: nodeExternals({
37-
// do not externalize dependencies that need to be processed by webpack.
38-
// you can add more file types here e.g. raw *.vue files
39-
// you should also whitelist deps that modifies `global` (e.g. polyfills)
37+
// ne pas externaliser les dépendances qui ont besoin d'être traitées par webpack.
38+
// vous pouvez ajouter plus de types de fichier ici, comme par ex. avec les fichiers `*.vue`
39+
// vous devriez aussi lister des exceptions qui modifient `global` (par ex. les polyfills)
4040
whitelist: /\.css$/
4141
}),
4242

43-
// This is the plugin that turns the entire output of the server build
44-
// into a single JSON file. The default file name will be
43+
// Ceci est le plugin qui va créer entièrement la sortie pour le build serveur
44+
// dans un seul fichier JSON. Le fichier généré par défaut va être
4545
// `vue-ssr-server-bundle.json`
4646
plugins: [
4747
new VueSSRServerPlugin()
4848
]
4949
})
5050
```
5151

52-
After `vue-ssr-server-bundle.json` has been generated, simply pass the file path to `createBundleRenderer`:
52+
Après que `vue-ssr-server-bundle.json` ai été généré, passez simplement le chemin du fichier à `createBundleRenderer` :
5353

5454
``` js
5555
const { createBundleRenderer } = require('vue-server-renderer')
5656
const renderer = createBundleRenderer('/path/to/vue-ssr-server-bundle.json', {
57-
// ...other renderer options
57+
// ...autre options pour le moteur
5858
})
5959
```
6060

61-
Alternatively, you can also pass the bundle as an Object to `createBundleRenderer`. This is useful for hot-reload during development - see the HackerNews demo for a [reference setup](https://github.com/vuejs/vue-hackernews-2.0/blob/master/build/setup-dev-server.js).
61+
Vous pouvez alternativement tout aussi bien passer le paquetage comme un objet à `createBundleRenderer`. Cela est utile pour le rechargement à chaud pendant le développement. Voyez la démo de HackerNews pour une [référence de mise en place](https://github.com/vuejs/vue-hackernews-2.0/blob/master/build/setup-dev-server.js).
6262

63-
### Externals Caveats
63+
### Limitations externes
6464

65-
Notice that in the `externals` option we are whitelisting CSS files. This is because CSS imported from dependencies should still be handled by webpack. If you are importing any other types of files that also rely on webpack (e.g. `*.vue`, `*.sass`), you should add them to the whitelist as well.
65+
Notons que dans l'option `externals` nous avons exclus les fichiers CSS. C'est parce que les fichiers CSS importés par dépendances doivent quand même être gérés par webpack. Si vous importez n'importe quels autres types de fichier également pris en charge par webpack (ex : `*.vue`, `*.styl`), vous pouvez également les ajouter à la liste des exceptions.
6666

67-
If you are using `runInNewContext: 'once'` or `runInNewContext: true`, then you also need to whitelist polyfills that modify `global`, e.g. `babel-polyfill`. This is because when using the new context mode, **code inside a server bundle has its own `global` object.** Since you don't really need it on the server when using Node 7.6+, it's actually easier to just import it in the client entry.
67+
Si vous utilisez `runInNewContext: 'once'` ou `runInNewContext: true`, alors vous devrez également ajouter aux exceptions les polyfills qui modifient `global` comme par ex. `babel-polyfill`. Cela est dû au fait qu'en utilisant un nouveau mode de contexte, **le code à l'intérieur d'un paquetage serveur a son propre objet `global`.** Parce qu'il n'est plus nécessaire de faire cela côté serveur en utilisant Node.js 7.6+, c'est d'autant plus facile de ne les importer que côté client.
6868

69-
## Client Config
69+
## Configuration cliente
7070

71-
The client config can remain largely the same with the base config. Obviously you need to point `entry` to your client entry file. Aside from that, if you are using `CommonsChunkPlugin`, make sure to use it only in the client config because the server bundle requires a single entry chunk.
71+
La configuration cliente peut être en grande partie la même grâce à la configuration de base. Bien sur vous devez faire pointer `entry` sur votre fichier d'entrée client. En plus de cela, si vous utilisez le plugin `CommonsChunkPlugin`, assurez-vous de ne l'utiliser que dans la configuration cliente car le paquetage serveur requiert un unique fragment d'entrée.
7272

73-
### Generating `clientManifest`
73+
### Générer le `clientManifest`
7474

75-
> requires version 2.3.0+
75+
> requiert la version 2.3.0+
7676
77-
In addition to the server bundle, we can also generate a client build manifest. With the client manifest and the server bundle, the renderer now has information of both the server *and* client builds, so it can automatically infer and inject [preload / prefetch directives](https://css-tricks.com/prefetching-preloading-prebrowsing/) and css links / script tags into the rendered HTML.
77+
En plus du paquetage serveur, nous pouvons également générer un build de manifeste client. Avec le manifeste client et le paquetage serveur, le moteur a maintenant les informations du build serveur *et* du build client, ainsi il peut automatiquement déduire et injecter les [directives pré-chargées et récupérées](https://css-tricks.com/prefetching-preloading-prebrowsing/) ainsi que les balises `<link>` / `<script>` dans le rendu HTML.
7878

79-
The benefits is two-fold:
79+
Les bénéfices sont doubles :
8080

81-
1. It can replace `html-webpack-plugin` for injecting the correct asset URLs when there are hashes in your generated filenames.
81+
1. Il peut remplacer le plugin `html-webpack-plugin` pour l'injection correcte d'URLs de fichiers quand il y a des hashs dans les noms de fichier générés.
8282

83-
2. When rendering a bundle that leverages webpack's on-demand code splitting features, we can ensure the optimal chunks are preloaded / prefetched, and also intelligently inject `<script>` tags for needed async chunks to avoid waterfall requests on the client, thus improving TTI (time-to-interactive).
83+
2. Lors du rendu d'un paquetage qui s'appuie sur les fonctionnalités de scission de code à la demande de webpack, nous pouvons être assuré que les fragments optimaux sont pré-chargés / récupérés, et que les balises `<script>` des fragments asynchrones nécessaires pour éviter la cascade de requête depuis le client sont intelligemment injectés. Cela améliore le TTI (« time-to-interactive »).
8484

85-
To make use of the client manifest, the client config would look something like this:
85+
Pour tirer partie du manifeste client, la configuration cliente devrait ressembler à ça :
8686

8787
``` js
8888
const webpack = require('webpack')
@@ -93,21 +93,21 @@ const VueSSRClientPlugin = require('vue-server-renderer/client-plugin')
9393
module.exports = merge(baseConfig, {
9494
entry: '/path/to/entry-client.js',
9595
plugins: [
96-
// Important: this splits the webpack runtime into a leading chunk
97-
// so that async chunks can be injected right after it.
98-
// this also enables better caching for your app/vendor code.
96+
// Important : cela scinde l'exécution de webpack en un fragment maître
97+
// et des fragments asynchrones qui peuvent être injectés juste après lui.
98+
// cela permet également une meilleure mise en cache pour vos codes d'applications tierces.
9999
new webpack.optimize.CommonsChunkPlugin({
100100
name: "manifest",
101101
minChunks: Infinity
102102
}),
103-
// This plugins generates `vue-ssr-client-manifest.json` in the
104-
// output directory.
103+
// Ce plugin génère le fichier `vue-ssr-client-manifest.json` dans
104+
// le dossier de sortie.
105105
new VueSSRClientPlugin()
106106
]
107107
})
108108
```
109109

110-
You can then use the generated client manifest, together with a page template:
110+
Vous pouvez même utiliser le manifeste client généré conjointement avec un template de page :
111111

112112
``` js
113113
const { createBundleRenderer } = require('vue-server-renderer')
@@ -122,47 +122,47 @@ const renderer = createBundleRenderer(serverBundle, {
122122
})
123123
```
124124

125-
With this setup, your server-rendered HTML for a build with code-splitting will look something like this (everything auto-injected):
125+
Avec cette mise en place, votre rendu HTML côté serveur pour un build avec scission de code va ressembler à quelque chose comme ci-dessous (tout étant auto-injecté) :
126126

127127
``` html
128128
<html>
129129
<head>
130-
<!-- chunks used for this render will be preloaded -->
130+
<!-- les fragments utilisés pour ce rendu vont être pré-chargés -->
131131
<link rel="preload" href="/manifest.js" as="script">
132132
<link rel="preload" href="/main.js" as="script">
133133
<link rel="preload" href="/0.js" as="script">
134-
<!-- unused async chunks will be prefetched (lower priority) -->
134+
<!-- les fragments asynchrones non utilisés vont seulement être récupérés (priorité basse) -->
135135
<link rel="prefetch" href="/1.js" as="script">
136136
</head>
137137
<body>
138-
<!-- app content -->
138+
<!-- contenu de l'application -->
139139
<div data-server-rendered="true"><div>async</div></div>
140-
<!-- manifest chunk should be first -->
140+
<!-- le fragment du manifeste devrait être le premier -->
141141
<script src="/manifest.js"></script>
142-
<!-- async chunks injected before main chunk -->
142+
<!-- les fragments asynchrones sont injectés avant le fragment principal -->
143143
<script src="/0.js"></script>
144144
<script src="/main.js"></script>
145145
</body>
146146
</html>`
147147
```
148148

149-
### Manual Asset Injection
149+
### Injection manuel des fichiers
150150

151-
By default, asset injection is automatic when you provide the `template` render option. But sometimes you might want finer-grained control over how assets are injected into the template, or maybe you are not using a template at all. In such a case, you can pass `inject: false` when creating the renderer and manually perform asset injection.
151+
Par défaut, l'injection des fichiers est automatique quand vous fournissez l'option de rendu `template`. Mais parfois vous aurez besoin d'une granularité de contrôle plus fine en ce qui concerne la manière dont les templates seront injectés, ou peut-être que vous n'utiliserez pas de template du tout. Dans tous les cas, vous pouvez passer `inject: false` quand le moteur est créé et manuellement réaliser l'injection des fichiers.
152152

153-
In the `renderToString` callback, the `context` object you passed in will expose the following methods:
153+
Dans la fonction de rappel de `renderToString`, l'objet `context` que vous passez va exposer les méthodes suivantes :
154154

155155
- `context.renderStyles()`
156156

157-
This will return inline `<style>` tags containing all the critical CSS collected from the `*.vue` components used during the render. See [CSS Management](./css.md) for more details.
157+
Cela va retourner une balise `<style>` contenant tout le CSS critique récupéré dans les composants `*.vue` et utilisés durant le rendu. Consultez [Gestion des CSS](./css.md) pour plus de détails.
158158

159-
If a `clientManifest` is provided, the returned string will also contain `<link rel="stylesheet">` tags for webpack-emitted CSS files (e.g. CSS extracted with `extract-text-webpack-plugin` or imported with `file-loader`)
159+
Si un `clientManifest` est fourni, la chaîne retournée va également contenir la balise `<link rel="stylesheet">` pour les fichiers CSS emis par webpack (ex: CSS extrait avec `extract-text-webpack-plugin` ou importés avec `file-loader`)
160160

161161
- `context.renderState(options?: Object)`
162162

163-
This method serializes `context.state` and returns an inline script that embeds the state as `window.__INITIAL_STATE__`.
163+
Cette méthode sérialise `context.state` et retourne une balise script qui contient l'état avec `window.__INITIAL_STATE__`.
164164

165-
The context state key and window state key can both be customized by passing an options object:
165+
La clé et la valeur de l'état peuvent être tous les deux passés dans l'objet d'option :
166166

167167
``` js
168168
context.renderState({
@@ -175,33 +175,33 @@ In the `renderToString` callback, the `context` object you passed in will expose
175175

176176
- `context.renderScripts()`
177177

178-
- requires `clientManifest`
178+
- requiert `clientManifest`
179179

180-
This method returns the `<script>` tags needed for the client application to boot. When using async code-splitting in the app code, this method will intelligently infer the correct async chunks to include.
180+
Cette méthode retourne la balise `<script>` nécessaire pour que l'application cliente puisse démarrer. Lors de l'utilisation de la scission de code asynchrone dans le code de l'application, cette méthode va intélligemment trouver les fragments asynchrones correctes à inclure.
181181

182182
- `context.renderResourceHints()`
183183

184-
- requires `clientManifest`
184+
- requiert `clientManifest`
185185

186-
This method returns the `<link rel="preload/prefetch">` resource hints needed for the current rendered page. By default it will:
186+
Cette méthode retourne les balises `<link rel="preload/prefetch">` nécessaires au rendu optimisé de la page. Par défaut ce sera :
187187

188-
- Preload the JavaScript and CSS files needed by the page
189-
- Prefetch async JavaScript chunks that might be needed later
188+
- Pré-chargement (récupération et exécution) des fichiers JavaScript et CSS requis par la page,
189+
- Récupération asynchrones des fragments JavaScript qui seront nécessaires plus tard.
190190

191-
Preloaded files can be further customized with the [`shouldPreload`](./api.md#shouldpreload) option.
191+
Les fichiers pré-chargés peuvent être personnalisés plus en profondeur avec l'option [`shouldPreload`](./api.md#shouldpreload).
192192

193193
- `context.getPreloadFiles()`
194194

195-
- requires `clientManifest`
195+
- requiert `clientManifest`
196196

197-
This method does not return a string - instead, it returns an Array of file objects representing the assets that should be preloaded. This can be used to programmatically perform HTTP/2 server push.
197+
Cette méthode ne retourne pas de chaîne de caractère. À la place elle retourne un tableau d'objets représentant les fichiers qui devraient être pré-chargés. Cela peut-être utilisé pour programmatiquement réaliser de l'augmentation serveur HTTP/2.
198198

199-
Since the `template` passed to `createBundleRenderer` will be interpolated using `context`, you can make use of these methods inside the template (with `inject: false`):
199+
Puisque le `template` passé à `createBundleRenderer` va être interpolé en utilisant le `context`, vous pouvez utiliser ces méthodes à l’intérieur de celui-ci (with `inject: false`) :
200200

201201
``` html
202202
<html>
203203
<head>
204-
<!-- use triple mustache for non-HTML-escaped interpolation -->
204+
<!-- utiliser les triples moustaches pour une interpolation sans HTML -->
205205
{{{ renderResourceHints() }}}
206206
{{{ renderStyles() }}}
207207
</head>
@@ -213,4 +213,4 @@ Since the `template` passed to `createBundleRenderer` will be interpolated using
213213
</html>
214214
```
215215

216-
If you are not using `template` at all, you can concatenate the strings yourself.
216+
Si vous n'utilisez pas `template` du tout, vous pouvez concaténer les chaînes vous-mêmes.

0 commit comments

Comments
 (0)