Nous avons annoncé
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'une offre groupée d'applications avec Webpack
Les applications web des scripts de navigateur ou l'utilisation dans Node.js des modules de code créent des dépendances. Ces modules de code peuvent avoir leurs propres dépendances, ce qui se traduit par un ensemble de modules interconnectés nécessaires à votre application pour fonctionner. Pour gérer des dépendances, vous pouvez utiliser un créateur d'offre groupée de modules comme Webpack.
Le créateur d'offre groupée de modules Webpack analyse votre code d'application, en recherchant des instructions require
ou import
pour créer des solutions groupées contenant toutes les ressources nécessaires à votre application, afin que les ressources puissent facilement être diffusées via une page web. Le kit SDK pour JavaScript peut être inclus dans Webpack comme l'une des dépendances à inclure dans la création groupée de sortie.
Pour plus d'informations sur Webpack, consultez le créateur d'offre groupée de modules Webpack
Installation de Webpack
Pour installer le créateur d'offre groupée de modules Webpack, vous devez tout d'abord installer npm, le gestionnaire de package Node.js. Saisissez la commande suivante pour installer l'interface de ligne de commande Webpack et le module JavaScript.
npm install webpack
Il se peut également que vous deviez installer un plug-in Webpack pour pouvoir charger les fichiers JSON. Saisissez la commande suivante pour installer le plug-in de chargeur JSON.
npm install json-loader
Configuration de Webpack
Par défaut, Webpack recherche un fichier JavaScript nommé webpack.config.js
dans le répertoire racine de votre projet. Ce fichier spécifie vos options de configuration. Voici un exemple de fichier de configuration webpack.config.js
.
// Import path for resolving file paths var path = require('path'); module.exports = { // Specify the entry point for our app. entry: [ path.join(__dirname, 'browser.js') ], // Specify the output file containing our bundled code output: { path: __dirname, filename: 'bundle.js' }, module: { /** * Tell webpack how to load 'json' files. * When webpack encounters a 'require()' statement * where a 'json' file is being imported, it will use * the json-loader. */ loaders: [ { test: /\.json$/, loaders: ['json'] } ] } }
Dans cet exemple, browser.js
est spécifié comme le point d'entrée. Le point d'entrée est le fichier que Webpack utilise pour rechercher des modules importés. Le nom de fichier de la sortie est spécifié en tant que bundle.js
. Ce fichier de sortie contient tout le code JavaScript nécessaire à l'application pour s'exécuter. Si le code spécifié dans le point d'entrée importe ou nécessite d'autres modules, tels que le kit SDK pour JavaScript, ce code est regroupé sans que vous ayez besoin de le spécifier dans la configuration.
La configuration installée auparavant dans le plug-in json-loader
indique à Webpack comment importer des fichiers JSON. Par défaut, Webpack prend uniquement en charge JavaScript, mais utilise des chargeurs pour ajouter la prise en charge de l'importation d'autres types de fichiers. Webpack génère une erreur lors de la génération de la création d'une offre groupée si le kit SDK pour JavaScript fait un usage approfondi des fichiers JSON.json-loader
n'est pas inclus.
Exécution de Webpack
Pour créer une application permettant d'utiliser Webpack, ajoutez les éléments suivants à l'objet scripts
dans votre fichier package.json
.
"build": "webpack"
Voici un exemple package.json
qui illustre l'ajout de Webpack.
{ "name": "aws-webpack", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack" }, "author": "", "license": "ISC", "dependencies": { "aws-sdk": "^2.6.1" }, "devDependencies": { "json-loader": "^0.5.4", "webpack": "^1.13.2" } }
Pour créer votre application, saisissez la commande suivante.
npm run build
Ensuite, le créateur d'offre groupée de modules Webpack génère le fichier JavaScript spécifié dans le répertoire racine de votre projet.
Utilisation de la solution groupée Webpack
Pour utiliser la solution groupée dans un script de navigateur, vous pouvez l'intégrer à l'aide d'une balise <script>
comme illustré dans l'exemple suivant.
<!DOCTYPE html> <html> <head> <title>AWS SDK with webpack</title> </head> <body> <div id="list"></div> <script src="bundle.js"></script> </body> </html>
Importation de services individuels
Webpack a l'avantage d'analyser les dépendances de votre code et de regrouper uniquement le code nécessaire à votre application. Si vous utilisez le kit SDK pour JavaScript, seule la création d'une offre groupée des parties du kit SDK réellement utilisées par votre application peut réduire considérablement la taille de la sortie Webpack.
Prenons l'exemple de code suivant utilisé pour créer un objet de service Amazon S3.
// Import the AWS SDK var AWS = require('aws-sdk'); // Set credentials and Region // This can also be done directly on the service client AWS.config.update({region: 'us-west-1', credentials: {
YOUR_CREDENTIALS
}}); var s3 = new AWS.S3({apiVersion: '2006-03-01'});
La fonction require()
spécifie le kit SDK entier. Un kit groupé Webpack généré avec ce code comprend le kit SDK entier, mais ce dernier n'est pas obligatoire lorsque seule la classe client Amazon S3 est utilisée. La taille de la création groupée est nettement inférieure si seule la partie du kit SDK nécessaire au service Amazon S3 est incluse. Il en est de même pour la définition de la configuration qui n'a pas besoin du kit SDK entier, car vous pour définir les données de configuration sur l'objet de service Amazon S3.
Voici à quoi ressemble le même code lorsqu'il comprend uniquement la partie Amazon S3 du kit SDK.
// Import the Amazon S3 service client var S3 = require('aws-sdk/clients/s3'); // Set credentials and Region var s3 = new S3({ apiVersion: '2006-03-01', region: 'us-west-1', credentials: {
YOUR_CREDENTIALS
} });
Création d'une offre groupée pour Node.js
Vous pouvez utiliser Webpack pour générer des solutions groupées qui s'exécutent dans Node.js en le spécifiant comme cible dans la configuration.
target: "node"
Cela s'avère utile lors de l'exécution d'une application Node.js dans un environnement où l'espace disque est limité. Voici un exemple de configuration webpack.config.js
avec Node.js spécifié comme cible de sortie.
// Import path for resolving file paths var path = require('path'); module.exports = { // Specify the entry point for our app entry: [ path.join(__dirname, 'node.js') ], // Specify the output file containing our bundled code output: { path: __dirname, filename: 'bundle.js' }, // Let webpack know to generate a Node.js bundle target: "node", module: { /** * Tell webpack how to load JSON files. * When webpack encounters a 'require()' statement * where a JSON file is being imported, it will use * the json-loader */ loaders: [ { test: /\.json$/, loaders: ['json'] } ] } }