Comment inclure un fichier JS dans un autre : 5 méthodes fonctionnelles

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

« Assemblez votre code par morceaux » : pourquoi ne peut-on pas simplement insérer un fichier JS dans un autre

\n

Quiconque a écrit en JavaScript pendant plus de deux semaines finit tôt ou tard par se heurter à un mur : « Comment puis-je utiliser les fonctions d'un autre fichier ? Je ne vais pas les copier d'un endroit à l'autre ?! » Le bon vieux Stack Overflow le sait bien — la question "How do I include a JavaScript file in another JavaScript file?" recueille des milliers de vues chaque mois. Et c'est logique : dans les projets réels, le code se développe rapidement, et tout garder dans un seul fichier mène au chaos.

\n

Dans cet article, nous allons examiner 5 méthodes éprouvées pour inclure un fichier JS dans un autre. Des méthodes anciennes aux normes modernes. C'est parti !

\n\n

Méthode 1 : La balise <script> classique dans le HTML

\n

La méthode la plus simple et la plus ancienne consiste simplement à ajouter plusieurs balises <script> dans votre fichier HTML. Mais il y a un détail : les fichiers sont chargés séquentiellement. Si votre main.js dépend de utils.js, alors utils.js doit être placé avant.

\n\n
<!DOCTYPE html>\n<html>\n<head>\n    <script src="utils.js"></script>\n    <script src="main.js"></script>\n</head>\n<body>\n    ...\n</body>\n</html>
\n\n

Problème : Ce n'est pas une inclusion d'un fichier JS dans un autre fichier JS, mais simplement un ordre de chargement. Si vous avez 20 scripts, vous risquez de vous perdre dans les dépendances. De plus, toutes les variables et fonctions deviennent globales — bonjour les conflits de noms !

\n\n

Méthode 2 : Modules ES6 (norme moderne)

\n

Depuis ES6 (ECMAScript 2015), JavaScript dispose d'un système de modules intégré. C'est la meilleure façon d'inclure un fichier JS dans un autre dans les projets modernes.

\n\n

Exportation depuis un fichier (math.js)

\n
// math.js\nexport function add(a, b) {\n    return a + b;\n}\n\nexport const PI = 3.14159;\n\nexport default function multiply(a, b) {\n    return a * b;\n}
\n\n

Importation dans un autre fichier (app.js)

\n
// app.js\nimport multiply, { add, PI } from './math.js';\n\nconsole.log(add(2, 3));      // 5\nconsole.log(PI);             // 3.14159\nconsole.log(multiply(4, 5)); // 20
\n\n

Important : Pour que cela fonctionne dans le navigateur, vous devez ajouter l'attribut type="module" dans le HTML :

\n\n
<script type="module" src="app.js"></script>
\n\n

Cette méthode résout tous les problèmes : isolation du code, dépendances claires, absence de variables globales. Idéal pour les applications web modernes.

\n\n

Méthode 3 : Node.js require (CommonJS)

\n

Si vous écrivez pour Node.js, la norme est CommonJS avec la fonction require(). Cette méthode pour inclure un fichier JS dans un autre fichier JS est encore utilisée dans le développement côté serveur (bien que les modules ES6 y soient déjà arrivés).

\n\n

Exportation (utils.js)

\n
// utils.js\nfunction greet(name) {\n    return `Bonjour, ${name}!`;\n}\n\nconst secret = 'myPassword123';\n\nmodule.exports = {\n    greet,\n    secret\n};
\n\n

Importation (server.js)

\n
// server.js\nconst utils = require('./utils.js');\n\nconsole.log(utils.greet('Alexis')); // Bonjour, Alexis !\nconsole.log(utils.secret);          // myPassword123
\n\n

Simple, fiable, fonctionne partout où Node.js est présent. Pour les navigateurs — non, uniquement via des bundlers (Webpack, Vite).

\n\n

Méthode 4 : Chargement dynamique de scripts (création d'une balise script)

\n

Parfois, vous devez inclure un fichier JS à partir d'un autre fichier JS directement pendant l'exécution. Par exemple, lorsque vous chargez des analytics ou un plugin uniquement en cas de besoin. Pour cela, vous pouvez créer dynamiquement une balise <script>.

\n\n
// loadScript.js\nfunction loadScript(src, callback) {\n    const script = document.createElement('script');\n    script.src = src;\n    script.onload =                

Blogs

Book Recommendations