Récemment pour les besoin de développement d’une extension Chrome, j’ai cherché un moyen de rafraichir l’extension car le process de rafraichissement était un peu fastidieux. Il fallait aller dans le menu des extensions (chrome://extensions) et rafraichir en cliquant sur un bouton. Je voulais automatiser cette procédure comme le fait le plugin Liveserver.
Installation du projet NodeJS
npm init -y npm install --save-dev nodemon chokidar #pour setup avancé (optionnel) npm install --save-dev chrome-extension-cli
Création du script de reload
import chokidar from "chokidar";
import { exec } from "child_process";
const EXTENSION_PATH = "./dist"; // or your extension folder
const CHROME_PROFILE = "--profile-directory=Default"; // optional
// watch all files in your extension folder
chokidar.watch(EXTENSION_PATH, { ignoreInitial: true }).on("all", (event, path) => {
console.log(`File ${path} changed — reloading Chrome extension...`);
// command to reload the extension via Chrome debugger API
exec(`osascript -e 'tell application "Google Chrome" to reload active tab'`);
// alternative: use chrome-cli on macOS (brew install chrome-cli)
// exec(`chrome-cli reload`);
});
Mise en place de nodemon
Dans package.json ajouter le script :
"scripts": {
"dev": "nodemon --watch src --exec \"node reload-extension.js\""
}
et faites npm run dev
Dorénavant, il vous suffit de fermer et rouvrir pour réactiver l’extension si c’est une extension pour les devtools.