2009-03-14 5 views
0

J'ai trois fichiers javascript que je veux fusionner en un seul fichier. Est-il possible de simplement copier coller tout le code dans un fichier ou y aura-t-il des conflits d'espace de noms et d'autres problèmes?JavaScript: fusionner des fichiers sans problèmes?

EDIT: Je m'inquiète que chaque fichier se comporte comme un espace de noms encapsulant le code de chaque fichier, et que cet encapsulage cesse d'exister si je fusionne les fichiers.

Répondre

1

Si les fichiers de script ont tous été chargés dans le <head> et que vous les collez dans le même ordre que celui apparu dans le code HTML, il ne devrait pas y avoir de problème.

Cela dit, si elles utilisent document.write Je ne suis pas sûr ...

+1

Je ne suis pas sûr - si l'un des fichiers javascript était cassé, je pense qu'il serait ignoré individuellement s'il est inclus individuellement. Si vous le fusionnez, le résultat de la fusion sera supprimé. Juste besoin d'avoir quelques tests qui s'assurent que certains scripts sont chargés/fonctionnent pour résoudre ce problème. –

1

S'ils travaillent tous lorsqu'il est chargé de façon séquentielle, il ne fait aucune différence si vous les concaténer en un seul fichier et vous qu'au lieu . Assurez-vous simplement de les assembler dans le même ordre que lorsque vous les chargez séparément.

0

Essayez-le et voyez si cela fonctionne. :) Les conflits d'espace de noms dépendent uniquement du code, donc sans le poster, il sera difficile de vous le dire. Vous ne devriez pas avoir de problèmes à les mettre dans un fichier tant qu'ils n'ont pas déjà d'erreurs, mais si l'un dépend d'un autre, assurez-vous de les mettre dans le bon ordre.

1

En réponse à votre vérification: Non, chaque fichier n'agira pas comme un espace de noms distinct.

Le niveau supérieur de chaque fichier partagera le même espace de noms global. Par conséquent, le fait d'avoir un fichier unique avec le contenu de tous les trois est le même que de référencer chacun en supposant que le contenu apparaît dans le même ordre.

0

Il n'y a absolument aucune encapsulation d'espace de noms en JavaScript, à moins que vous n'ayez à vous en sortir pour y arriver. Par défaut, tout finit dans l'espace de noms global. Le JavaScript module pattern permet de réduire la pollution de l'espace de noms global.

Questions connexes