Organisation de l'arborescence
Le dépôt se structure autour de fichiers de paramétrage, de métadonnées et de scripts de validation :
.editorconfig&.eslintrc: Harmonisation du formatage et règles de qualité syntaxique..gitignore&.gitattributes: Politiques d'exclusion et attributs de suivi de version.index.js: Point d'entrée principal exportant la logique de compilation.package.json: Registre des dépendances et des commandes npm.test.js: Implémentation de la suite de vérification.README.md,LICENSE,CHANGELOG.md,.travis.yml: Documentation, licence, historique des modifications et pipeline d'intégration continue.
Intégration de la cible de compilation
Le module expose une fonction utilitaire qui transforme un objet de configuration Webpack standard en une configuration optimisée pour l'environnement navigateur d'Electron. Cette adaptation modifie notamment la résolution des paquets et le comportement du bundler face aux modules natifs.
const electronRenderTarget = require('webpack-target-electron-renderer');
const baseParams = {
entry: './src/renderer-main.js',
output: {
filename: 'app-bundle.js',
path: './dist'
},
module: {
rules: [
{ test: /\.js$/, loader: 'babel-loader' }
]
},
resolve: {
extensions: ['.js', '.json', '.node']
}
};
const projectConfig = {
...baseParams,
target: electronRenderTarget(baseParams)
};
module.exports = projectConfig;
Dans cet exemple, la fonction cible est appliquée après la définition des paramètres de base. Elle intercepte la configuration pour ajuster les chemins de résolution (packageMains) et garantir que les appels aux API Node.js soient correctement traités par le runtime Electron.
Manifeste de gestion des paquets
Le fichier package.json centralise les métadonnées du projet, les scripts d'automatisation et la gestion des versions logiciellles.
{
"name": "webpack-electron-render-target",
"version": "0.4.0",
"description": "Adaptateur Webpack pour l'environnement de rendu Electron",
"main": "src/index.js",
"scripts": {
"verify": "npm test",
"lint": "eslint src/**/*.js"
},
"repository": {
"type": "git",
"url": "https://github.com/example/webpack-target-electron-renderer.git"
},
"keywords": [
"webpack",
"electron",
"renderer",
"bundler"
],
"license": "MIT",
"dependencies": {
"webpack": "^1.12.15"
}
}
Les champs clés définissent le comportemant du gestionnaire de paquets :
name&version: Identifiant unique et itération logicielle.main: Chemin relatif vers le fichier exporté.scripts: Commandes automatisées pour les cycles de développement.repository&homepage: Pointeurs vers les sources et la documentation publique.keywords: Indexation pour les recherches sur les registres publics.license: Conditions d'uitlisation et de redistribution.dependencies: Bibliothèques requises pour le fonctionnement du module.