Ik heb een PHP/jquery project waarbij ik het jquery gedeelte aan het refactoren ben. Wat eerst een soep was in een gigantisch bestand, heb in ondertussen onderverdeeld in CommonJS modules met Browserify. Een groot deel van deze modules bevatten event listeners die vrijwel direct bij het laden van de pagina beschikbaar moeten zijn. Sommige van deze modules bevatten ook functies die exported worden zodat andere modules ze kunnen gebruiken.
Het probleem bij de modules met beiden event listeners en exports, is dat ik niet weet in mijn mail.js bestand of deze reeds ergens anders required zijn:
Ik zou natuurlijk ook gewoon in mail.js alle modules kunnen requiren om dit probleem te vermijden maar dit is extra overhead aangezien de module mogelijks meerdere keren required wordt.
Het probleem bij de modules met beiden event listeners en exports, is dat ik niet weet in mijn mail.js bestand of deze reeds ergens anders required zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| // -------------------------------------------------- // module.js // -------------------------------------------------- 'use strict'; $(document).on('click', '#some-button', function(event) { // handle event }); function someFunction() { // some code } module.exports = { someFunction: someFunction }; // -------------------------------------------------- // other-module.js // -------------------------------------------------- 'use strict'; var module = require('./module.js'); module.someFunction(); // -------------------------------------------------- // main.js // -------------------------------------------------- var otherModule = require('./other-module.js'); // Ik weet niet in mail.js of "module.js" reeds ergens anders required is. // var module = require('./module.js'); ? |
Ik zou natuurlijk ook gewoon in mail.js alle modules kunnen requiren om dit probleem te vermijden maar dit is extra overhead aangezien de module mogelijks meerdere keren required wordt.