Skip to content

Commit d9ad2b7

Browse files
committed
Translation in french part7d line 255
1 parent 257db0a commit d9ad2b7

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

src/content/7/fr/part7d.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,112 @@ Le fichier contient beaucoup de choses qui semblent assez intéressantes. Nous p
148148
eval("const hello = name => {\n console.log(`hello ${name}`)\n}\n\n//# sourceURL=webpack://webpack-osa7/./src/index.js?");
149149
```
150150

151+
Ajoutons un fichier <i>App.js</i> sous le répertoire <i>src</i> avec le contenu suivant:
152+
153+
```js
154+
const App = () => {
155+
return null
156+
}
157+
158+
export default App
159+
```
160+
161+
Importons et utilisons le module <i>App</i> dans le fichier <i>index.js</i>:
162+
163+
```js
164+
import App from './App';
165+
166+
const hello = name => {
167+
console.log(`hello ${name}`)
168+
}
169+
170+
App()
171+
```
172+
173+
Lorsque nous empaquetons à nouveau l'application avec la commande _npm run build_, nous remarquons que webpack a pris en compte les deux fichiers:
174+
175+
![sortie du terminal montrant que webpack a généré deux fichiers](../../images/7/20x.png)
176+
177+
Notre code d'application peut être trouvé à la fin du fichier bundle dans un format plutôt obscur:
178+
179+
![sortie du terminal montrant notre code minifié](../../images/7/20z.png)
180+
181+
### Fichier de configuration
182+
183+
Examinons de plus près le contenu de notre fichier <i>webpack.config.js</i> actuel:
184+
185+
```js
186+
const path = require('path')
187+
188+
const config = () => {
189+
return {
190+
entry: './src/index.js',
191+
output: {
192+
path: path.resolve(__dirname, 'build'),
193+
filename: 'main.js'
194+
}
195+
}
196+
}
197+
198+
module.exports = config
199+
```
200+
201+
Le fichier de configuration a été écrit en JavaScript et la fonction retournant l'objet de configuration est exportée en utilisant la syntaxe de module de Node.
202+
203+
Notre définition de configuration minimale s'explique presque d'elle-même. La propriété [entry](https://webpack.js.org/concepts/#entry) de l'objet de configuration spécifie le fichier qui servira de point d'entrée pour l'empaquetage de l'application.
204+
205+
La propriété [output](https://webpack.js.org/concepts/#output) définit l'emplacement où le code empaqueté sera stocké. Le répertoire cible doit être défini comme un <i>chemin absolu</i>, ce qui est facile à créer avec la méthode [path.resolve](https://nodejs.org/docs/latest-v8.x/api/path.html#path_path_resolve_paths). Nous utilisons aussi [\_\_dirname](https://nodejs.org/docs/latest/api/globals.html#globals_dirname) qui est une variable dans Node qui stocke le chemin vers le répertoire courant.
206+
207+
### Empaquetage de React
208+
209+
Ensuite, transformons notre application en une application React minimale. Installons les bibliothèques requises:
210+
211+
```bash
212+
npm install react react-dom
213+
```
214+
215+
Et transformons notre application en une application React en ajoutant les définitions familières dans le fichier <i>index.js</i>:
216+
217+
```js
218+
import React from 'react'
219+
import ReactDOM from 'react-dom/client'
220+
import App from './App'
221+
222+
ReactDOM.createRoot(document.getElementById('root')).render(<App />)
223+
```
224+
225+
Nous apporterons également les modifications suivantes au fichier <i>App.js</i>:
226+
227+
```js
228+
import React from 'react' // we need this now also in component files
229+
230+
const App = () => {
231+
return (
232+
<div>
233+
hello webpack
234+
</div>
235+
)
236+
}
237+
238+
export default App
239+
```
240+
241+
Nous avons encore besoin du fichier <i>build/index.html</i> qui servira de "page principale" de notre application et qui chargera notre code JavaScript empaqueté avec une balise <i>script</i>:
242+
243+
```html
244+
<!DOCTYPE html>
245+
<html lang="en">
246+
<head>
247+
<meta charset="utf-8" />
248+
<title>React App</title>
249+
</head>
250+
<body>
251+
<div id="root"></div>
252+
<script type="text/javascript" src="./main.js"></script>
253+
</body>
254+
</html>
255+
```
256+
151257

152258

153259
</div>

0 commit comments

Comments
 (0)