рдПрдХ рдПрдХрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдореЙрдбреНрдпреВрд▓реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдбреАрдПрди рдореЗрдВ jQuery рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдЖрдкрдХреА рдмрд╣реБрдд рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рди рджрд┐рдЦрд╛рдПрдБ рдФрд░ рд╣реЛ рд╕рдХреЗ рддреЛ jQuery рдФрд░ $ рди рджрд┐рдЦрд╛рдПрдВред рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВред
рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реМрдВрджрд░реНрдп рдХреЗ рд▓рд┐рдП, рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдХрдард┐рдирд╛рдИ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдиреНрдпред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╣ рдирд╣реАрдВ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ - рдЙрд╕реЗ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рдПрдХ рдПрдХрд▓ рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЕрдВрдд рдореЗрдВ jQuery рдФрд░ $ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
(function(window, undefined){ // include ./js/YourNamespace.js var YourNamespace = (function () { // -  return {}; }()); // include ./js/YourNamespace/SomeObject.js YourNamespace.SomeObject = (function () { // -  return function () { }; }()); // Cleanup delete window.$; delete window.jQuery; }(window)); 

рдпрд╣ рдЖрджрд░реНрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВред рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рджреЗрдЦреЛ, рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реИ?

рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕рдХреНрд░рд┐рдп / рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ


рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрдпрд╛рдд
 (function (window) { var ModuleA = {}; // Export window.ModuleA = ModuleA; }(window)); 
рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдирд┐рд╖реНрдХреНрд░рд┐рдп рдирд┐рд░реНрдпрд╛рдд
 var ModuleC = (function (window) { var ModuleC = {}; // Export return ModuleC; }(window)); 
рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕рдХреНрд░рд┐рдп рдЖрдпрд╛рдд
 (function (window, $) { console.log($); }(this, jQuery)); 
JQuery рдореЙрдбреНрдпреВрд▓ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЖрдпрд╛рдд
 (function (window) { console.log(ModuleC); }(this)); 
рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕рднрд╛


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдЪ рд╣реИ, рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдП рдореЙрдбреНрдпреВрд▓ рдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореЙрдбреНрдпреВрд▓ рдмреА рдореЙрдбреНрдпреВрд▓ рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рд╕рднреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рддреЛ рдЬрдм рдореЙрдбреНрдпреВрд▓ рдП рдХреЛ рд▓реВрдк рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджрд░реНрдн рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА - рдореЙрдбреНрдпреВрд▓ рдмреА рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдмреА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд░реНрдХрд┐рдЯ рдП рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ, рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдЙрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░реЛрдВ рдХреА рд╕реВрдЪреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рд▓рд┐рдкрд┐ рдХреЗ рдЖрд░рдВрдн рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдП рдереЗ - рд╣рдо рдХреЗрд╡рд▓ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг


рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреЗрдЦреЗрдВ рдЬрд┐рд╕рдореЗрдВ jQuery рдФрд░ 3 рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ

 // Uses ModuleC, $ (function (window) { var ModuleA = { a: 'ModuleA.a', b: 2, d: function () { console.log(ModuleC.c === 'ModuleC.c'); console.log(typeof $ === 'function'); } }; // Export window.ModuleA = ModuleA; }(window)); 

 // Uses ModuleA var ModuleC = (function (window) { var ModuleC = { a: 1, b: 2, c: 'ModuleC.c', d: function () { console.log(ModuleA.a === 'ModuleA.a'); } }; // Export return ModuleC; }(window)); 

 // Uses ModuleA, ModuleC ModuleA.c(); window.setTimeout(function () { ModuleC.d(); ModuleA.d(); }, 0); 

рдореЙрдбреНрдпреВрд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ: рдЕрд▓рдЧ рд╕реЗ jQuery, рдореЙрдбреНрдпреВрд▓ + рдореЙрдбреНрдпреВрд▓ + рдореЙрдбреНрдпреВрд▓ред рдореЙрдбреНрдпреВрд▓ рдП рдореЙрдбреНрдпреВрд▓ рд╕реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдореЙрдбреНрдпреВрд▓ рд╕реА рдореЙрдбреНрдпреВрд▓ рдП (рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдВрдШрд░реНрд╖) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдП рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ; рдореЙрдбреНрдпреВрд▓ рд╕реА рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЦреБрдж рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ; рдореЙрдбреНрдпреВрд▓ рдбреА рдХреБрдЫ рднреА рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ

 //     (function(window, undefined){ //       var Medium = { wait: function (varName, callback) {/* -   */}, ready: function (varName, varValue) {/* -   */} }; //   A,      (function (ModuleC, $) { // ..  ModuleC   ,    Medium.wait('ModuleC', function (value) {ModuleC = value;}); (function (window) { var ModuleA = { a: 'ModuleA.a', b: 2, d: function () { console.log(ModuleC.c === 'ModuleC.c'); console.log(typeof $ === 'function'); } }; // Export window.ModuleA = ModuleA; }(window)); } (undefined, $)); //   C,      (function (ModuleA) { var ModuleC = (function (window) { var ModuleC = { a: 1, b: 2, c: 'ModuleC.c', d: function () { console.log(ModuleA.a === 'ModuleA.a'); } }; // Export return ModuleC; }(window)); // ..  ModuleC  ,      ,    window.ModuleC = ModuleC; //   C  -      Medium.ready('ModuleC', ModuleC); } (ModuleA)); //   ,      (function (ModuleA,Module) { // Uses ModuleA, ModuleC ModuleA.c(); window.setTimeout(function () { ModuleC.d(); ModuleA.d(); }, 0); } (ModuleA,Module)); //      -         try { delete window.$; delete window.jQuery; delete window.ModuleA; delete window.Module; } catch (e){ // IE  window.$ = undefined; window.jQuery = undefined; window.ModuleA = undefined; window.Module = undefined; } //          ! }(window)); 

рдЪрд░ рдХреИрдкреНрдЪрд░ рд╕рдорд╕реНрдпрд╛


рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪрд░ (рд╕реМрдВрджрд░реНрдп рдХреЗ рд▓рд┐рдП) рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдШрдбрд╝реА, __defineSetter__, ES5 рд╕реЗрдЯ рдФрд░ рд╕рдВрднрд╡рддрдГ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ 3 рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:
1. рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ (рдХрдмреНрдЬрд╛ рдореМрдХрд╛ рд╢реВрдиреНрдп рд╣реИ, рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)
2. рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдХреИрдкреНрдЪрд░ рдХрд╛ рдореМрдХрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)
3. рджреВрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХреЛрдВ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдХрдмреНрдЬрд╛ рдореМрдХрд╛ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ)

рд╣рдо рд╡рд┐рдзрд┐ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдЕрдкрдиреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ:
 //     (function(window, undefined){ //  __defineSetter__, ES5 set, watch window.unwatch && window.unwatch('ModuleA'); window.unwatch && window.unwatch('Module'); try { delete window.ModuleA; delete window.Module; } catch (e){ // IE  window.ModuleA = undefined; window.Module = undefined; } //   var maxIntervalId = window.setInterval(function (){}, 1e10); var maxTimeoutlId = window.setTimeout(function (){}, 1e10); while (maxIntervalId--) { window.clearInterval(maxIntervalId); } while (maxTimeoutlId--) { window.clearTimeout(maxTimeoutlId); } //    // ... }(window)); 

рдЕрдм рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдВрдЬрд╛ рдХреА рд╕рдмрд╕реЗ рдкрд░рд┐рд╖реНрдХреГрдд рддрдХрдиреАрдХ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рд╣реИ - "рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЫрд┐рдкрд╛рдирд╛"!

рдЕрдкрд╡рд╛рдж

рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреА рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧреА рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рдХреВрдбрд╝реЗ рд╣реИрдВ, рддреЛ рдЗрд╡реЗрдВрдЯ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ onsmth = "...", рдпрд╛рдиреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░реЗрдВ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ;) рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рдХреЛрдИ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

рдирд┐рдВрдЬрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдбрд░ - Ninjs


рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрджреНрдзрддрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрдирд╛ рди рдкрдбрд╝реЗ, рдореИрдВрдиреЗ рдЗрдХреНрдХрд╛ - рдирдиреНрдЬ рд▓рд┐рдЦрд╛ред рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рд╣реИред рдмрд┐рд▓реНрдбрд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдкрдиреЗ рдирд╛рдо рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддрд╛ рд╣реИ - рд╡рд╣, рдирд┐рдВрдЬрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ github github.com/azproduction/ninjs рдкрд░ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП Node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ npm рдореЗрдВ рдЕрднреА рддрдХ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛ред
рдЬрдм рддрдХ рд╡рд╣ рдЪрд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ - рддрдм рддрдХред

рдХреЗ рдЙрдкрдпреЛрдЧ

Ninjs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рд╣рдореЗрдВ рдмрд╕ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдХрд┐рд╕ рдЪрд░ рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдХрд╣рд╛рдВ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред рд╕рднреА Ninjs рдирд┐рд░реНрднрд░рддрд╛ рдЖрдк рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд░реЗрдЧрд╛ред
 var ninjs = new (require('../Ninjs.js').Ninjs); ninjs .add({ //  ModuleA file: './files/ModuleA.js', //    ModuleC  ModuleB imports: ['ModuleC', 'ModuleB'], //   ModuleA exports: 'ModuleA' }) .add({ //  ModuleB file: './files/ModuleB.js', //    ModuleA    jQuery imports: 'ModuleA', //   ModuleB exports: 'ModuleB' }) .add({ //  ModuleD file: './files/ModuleD.js', //    ModuleA, ModuleB and ModuleC imports: ['ModuleA', 'ModuleB', 'ModuleC'] //    }) .add({ //  ModuleC file: './files/ModuleC.js', //    ModuleA, ModuleB imports: ['ModuleA', 'ModuleB'], //    ModuleC exports: 'ModuleC', //  ModuleC   ,     forceExports: 'ModuleC' }) //   .cleanup('ModuleA', 'ModuleB', 'ModuleC', '$', 'jQuery') //  STDOUT .print(true); //         ,    // .print(false); 

рдирдореВрдирд╛ рдХреЛрдб рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИ github.com/azproduction/ninjs/tree/master/examples

рджреЗрдЦрддреЗ рд░рд╣реЛред рд╕реБрдЭрд╛рд╡реЛрдВ, рдЗрдЪреНрдЫрд╛рдУрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

PS рдореИрдВ рдирд┐рдиреНрдЬ рд▓реЛрдЧреЛ рдореЗрдВ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдВрдЬрд╛ рдЖрдЗрдХрди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВред

Source: https://habr.com/ru/post/In117229/


All Articles