рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рдереА рдФрд░ рд╕рднреА рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рд░реВрдк рд╕реЗ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ред
рдореЙрдбреНрдпреВрд▓ рдпрд╛ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛рдПрдВ рдХрд┐рд╕реА рднреА рд╡рдпрд╕реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИрдВред рдпрд╣ рдХреЛрдИ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрд░рдЪрд┐рдд, рд╢реЛрд░ рд╕реЗ рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрди рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ - рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ, рдПрдХ рдЖрд╡реЗрджрди рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЪрд╛рд▓рд╛рдХрд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдордп рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рджреЛрд╣рд░реЗ рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдбрд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реЛрдЪрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ "рдбреЛрдо рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ", рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред рд╣рд╛рдВ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред рдФрд░ рдлрд┐рд░ рдЕрдЪрд╛рдирдХ рднрд╡рд┐рд╖реНрдп рдЖ рдЧрдпрд╛! рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореЙрдбреНрдпреВрд▓, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓рд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдирд╛ рдФрд░ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
рдЖрдкрдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ AMD, CommonJS & ES рд╣рд╛рд░реНрдордиреА рдХреЗ рд╕рд╛рде Addy Osmani
Writing Modular JavaScript рдХрд╛ рдмреЗрд╣рддрд░реАрди рд▓реЗрдЦ рдкрдврд╝рд╛ рд╣реИ, рдЬреЛ рдЙрдирдХреА рдкреБрд╕реНрддрдХ
Learning JavaScript Design Patterns рдХреЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд▓реЗрдЦ "рдЖрдзреБрдирд┐рдХ" рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд▓реЗрдЦ рдкрдврд╝рддрд╛ рд╣реИ
JavaScript рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди : "рдкреБрд░рд╛рдиреЗ" рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЧрд╣рд░рд╛рдИ 2010 рдореЗрдВред
рдореИрдВ рдЗрди рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдФрд░ рди рд╣реА рдЗрдирдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд░реВрдк рдмрдирд╛рдКрдВрдЧрд╛ред рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓рд░ рдкрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдореИрдВрдиреЗ "рдкреБрд░рд╛рдиреЗ" рдореЙрдбреНрдпреВрд▓ рд╕реЗ "рдирдП" рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдФрд░ рдореИрдВ рдЕрднреА рдФрд░ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ 3 рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдореЙрдбреНрдпреВрд▓ рдкрд╛рдерд╡реЗ, рдореЙрдбреНрдпреВрд▓ рд╣рд┐рдореНрдордд рдкрд░ рдорд┐рд▓рд╛рди рднрд╛рдЧ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓
tl; рдбреЙрдореИрдВ
рдПрдПрдордбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдЧреИрд░-рдореЙрдбреНрдпреВрд▓" рд╕реЗ рдПрдХ рд▓рдВрдмрд╛ рд╕рдлрд░ рддрдп рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ рдФрд░
рдПрд▓рдПрдордбреА рдХреЛ
рдмреНрд░рд╛рдЙрдЬрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореЗрд░реА рд╕рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ
ECMAScript 6 рдореЙрдбреНрдпреВрд▓ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред
рдореЙрдбреНрдпреВрд▓ рдкрде
рдЪрд░рдг 1: рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд┐рдирд╛
рдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ рдЬрдм рдереЛрдбрд╝рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдерд╛, рдореИрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рддрд┐рд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ред рддрдм рдореБрдЭреЗ рдЙрдирдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереАред рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдХреА рд╢реБрд░реВрдЖрдд рдореЗрд░реЗ рдХреЛрдб рдХреА релреж рд▓рд╛рдЗрдиреЛрдВ рдХреЛ резрелреж рдореЗрдВ рдмрджрд▓ рджреЗрдЧреАред рдФрд░ рдореИрдВ рдмрд┐рдирд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбреЛрдо рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкреИрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдФрд░ рдорд┐рдирд┐рдлрд╝рд╛рдпрд░ рддрдм рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рдереЗред
рдореЙрдбреНрдпреВрд▓
MyNs.MyModule = function () {}; MyNs.MyModule.prototype = {
рд╕рднрд╛
<script src="myNs.js"/> <script src="myNs/myModule.js"/>
рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреА рдкреНрд░рдЧрддрд┐ рдиреЗ рдПрдХ рдФрд░ рдЖрдзрд╛ рдХрджрдо рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрдм рдореИрдВрдиреЗ рдмрд┐рд▓реНрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
$ cat js/*.js > build.js
рд╕реНрдЯреЗрдЬ 2: рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
рдкреНрд░рдЧрддрд┐ рдЕрднреА рднреА рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореЗрд░реА 50 рд▓рд╛рдЗрдиреЗрдВ рдХреЛрдб рдзреАрд░реЗ-рдзреАрд░реЗ 1500 рдореЗрдВ рдмрджрд▓ рдЧрдИрдВ, рдореИрдВрдиреЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЙрдирдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рд┐рдЪ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЙрдирдХреЗ рдЖрдВрд╢рд┐рдХ рдЕрд▓рдЧрд╛рд╡ рдиреЗ рдЙрд╕ рд╕рдордп рдХреА рдореЗрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдереЗ, рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдереАрдВ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рддрдм рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдерд╛ред рдореИрдВрдиреЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЙрдкрджреНрд░рд╡ рд╣реБрдЖ рдерд╛:
if (typeof MyNamespace === 'undefined') { var MyNamespace = {}; }
рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдмрд▓:
new MyNamespace.MyConstructor(MyNamespace.MY_CONST);
рдФрд░ рдЙрд╕ рд╕рдордп рдХреЗ рдордВрддреНрд░рд┐рдпреЛрдВ рдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрдХреБрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛:
new a.MyConstructor(a.MY_CONST);
рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓реНрд╕ рдиреЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрдм рдореИрдВрдиреЗ рдХреБрд▓ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдФрд░ рдЙрд╕рдиреЗ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:
include('deps/dep1.js'); var MyModule = (function () { var MyModule = function () {}; MyModule.prototype = {
рдФрд░ рдРрд╕реА рд╕рднрд╛
(function () { include('myModule.js'); }());
рдФрд░ рд╡рд╣реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
$ includify builds/build.js index.js
рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреВрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдПрдХ рдФрд░ IEFE рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕реНрдЯреЗрдЬ 3: рдПрдПрдордбреА

рдПрдХ рджрд┐рди, Reddit рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ AMD рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рднрд░ рдЖрдпрд╛ред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдПрдордбреА рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдпреВрдпреВрдЖрдИ
рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбреЛрдкрд┐рд▓реАрди рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдм рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдг рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рднреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ред
рдпрд╣ рдерд╛
YUI().use('dep1', function (Y) { Y.dep1.sayHello(); });
рдмрди рдЧрдпрд╛ рд╣реИ
require(['dep1'], function (dep1) { dep1.sayHello(); });
рдПрдПрдордбреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рдерд╛ред рдХреЗрд╡рд▓ 2 рдХрд╛рд░реНрдпреЛрдВ рдХреА
require()
рдФрд░
define()
рдФрд░ рдореЗрд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдореЙрдбреНрдпреВрд▓ рдиреЗ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдЦреБрдж рд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдореЙрдбреНрдпреВрд▓ рдХреЛ 3 рднрд╛рдЧреЛрдВ (рдЖрдпрд╛рдд, рдирд┐рд░реНрдпрд╛рдд, рдореЙрдбреНрдпреВрд▓ рдмреЙрдбреА) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рд╡реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдХреЛрдб рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдХреНрд▓реАрдирд░ рдмрди рдЧрдпрд╛ рд╣реИ!
рдореЙрдбреНрдпреВрд▓
define('myModule', ['dep1', 'dep2'], function (dep1, dep2) { var MyModule = function () {}; MyModule.prototype = {
рд╕рднрд╛
$ node r.js index.js bundle.js
рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ ...
рд╕реНрдЯреЗрдЬ 4: рдПрдПрдордбреА рдореЗрдВ рдирд┐рд░рд╛рд╢рд╛
рдореИрдВрдиреЗ рдЬреЛ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рд╡рд╣ рдПрдХ рдЖрджрд░реНрд╢ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕рд╣реА рд╕рдВрдпреЛрдЬрди рд╣реИред рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрддреА рд╣реИред рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ:
require(['deps/dep1', 'deps/dep2', 'deps/dep3', 'deps/dep4', 'deps/dep5', 'deps/dep6', 'deps/dep7'], function ( dep1, dep2, dep3, dep4, dep5, dep6, dep7) { return function () { return dep1 + dep2; }; });
рдЖрдк рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрджреНрд░рд╡ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд░рд▓реАрдХреГрдд рдХреЙрдордирдЬреЗрдПрд╕ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд░реАрдореЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА, рдЖрдкрдХреЛ рдПрдХ
define()
рдЖрд╡рд░рдг рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдИрдорд╛рдирджрд╛рд░ CommonJS рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ
r.js
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
r.js
define(function (require, module, exports) { var dep1 = require('dep1'), dep2 = require('dep2'), dep3 = require('dep3'), dep4 = require('dep4'), dep5 = require('dep5'), dep6 = require('dep6'), dep7 = require('dep7'); return function () { return dep1 + dep2; }; });
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХреГрдд рдХреЙрдордирдЬрд╕ рдкреНрд░рд╛рд░реВрдк "рдореВрд▓ рдирд╣реАрдВ" рд╣реИ, рдмрд╕ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдЗрд╕ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреАред

рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛:
require("myModule//"); require("my module"); require("my" + "Module"); var require = r; r("myModule");
рдпрд╣ рдХреЛрдб рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рднреА рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдЙрджрд╛рд╣рд░рдг рд╕рд╛рд░ рд╣реИ рдФрд░ рдХреБрдЫ рдирд╛рдореЛрдВ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдХреНрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреЗрдореНрдкрд▓реЗрдЯ рдпрд╛ рдХреБрдЫ рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рдеред
рдЬрд░реВрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
({ "paths": { "myModule": "modules/myModule.js" } })
рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ (рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╣рд░ рдмрд╛рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреЛрдб рд╣рд░ рддрд░рд╣ рдХреЗ рдЬрд╛рджреВ рд╕реЗ рдмрдврд╝рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреИрджрд╛ рдХрд░рдирд╛ред рдФрд░ "рдЧрддрд┐рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЙрдкрд▓рдмреНрдз рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╡рдХреВрдлреА рд╣реИред
рдореИрдВрдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХреЙрдорди рдЬреЗрдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднреА рдЖрд░рдЬреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдПрдордбреА рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдиреЗ рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЬрд╛рджреВ рдХреЗ Node.js рдХреЗ рд╕рд╛рде рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рдореВрд▓ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрд╕рд╛рдЦреА рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдордХрд╛рдиреЗ рдХреЗ рд╕рд╛рдеред
рдореБрдЭреЗ рдЙрди рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА рдЬреЛ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕рдмрд╕реЗ рд╕рдорд╛рди рдХреЛрдб рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдореБрдЭреЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ 1 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдПрдХрддреНрд░ рдХрд┐рдПред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк (1 рдЕрдиреБрд░реЛрдз) рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╢реЗрд╖ рднрд╛рдЧреЛрдВ рдХреЛ рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдЯреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрдбрд╝реЗ рдПрдХ (рдПрдХ 1 рдПрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛) рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдиреЗ рд╕рдордп рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рджреЛрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд┐рдпрд╛ред
рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрд╕реА рд▓реЛрдХреЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд╕рд╛рде IE рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдПрдХ рдЖрд╡реЗрджрдиред рдпрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рд╕рд╛рде рдпреВрдХреНрд░реЗрди рдХреЗ рд▓рд┐рдП iPad рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдПрдХ рдЖрд╡реЗрджрди рдЕрдХреНрд╖рдо рд╣реИред рдЕрд░рд╛рдЬрдХрддрд╛ рдХрд╛ рд░рд╛рдЬ рдФрд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ ...
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХреЗ рджрд░реНрд╢рди рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП
require()
рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдВрдпрдВрддреНрд░ рд╣реИред
require()
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЕрдореВрд░реНрдд рдмрдирд╛рддрд╛ рд╣реИ; рдпрджрд┐ рдкреНрд▓рдЧрдЗрди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
require(['async!i18n/data', 'pewpew.js', 'text!templates/index.html'], fucntion (data, pewpew, template) { });
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрди рдиреАрд░рд╕ рд╣реИрдВ рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВ - рдпрд╣ рд▓рдЧрднрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЪрд░рдг 5: рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ
рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдк рдЕрдм рдЙрд╕ рддрд░рд╣ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:
1 рдореЙрдбреНрдпреВрд▓ рдХреЙрдордирдЬрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЬрдм рдЖрдк Node.js рдФрд░ JS @ DOM рдХреЗ рддрд╣рдд рдПрдХ рд╣реА рдореЙрдбреНрдпреВрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд▓рдЧрд╛рддрд╛рд░ рдорд╛рдорд▓рд╛ред рдЕрдХреНрд╕рд░ рдпреЗ рдХреБрдЫ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рд╣рд░реА рд╡рд╛рддрд╛рд╡рд░рдг (рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / DOM) рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЯреЗрдореНрдкреНрд▓реЗрдЯ (рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣рд┐рд╕реНрд╕рд╛), рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп, рдлрд╝рд╛рд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ ...
рдЬрдм рдЖрдк рдПрдПрдордбреА рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рддрд░реАрдХреЗ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдПрдордбреА рдХреЛ рд╕реАрдЬреЗрдПрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдпрд╛ рдиреЛрдб-рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡реЗ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рдиред рддрдм рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдореЗрд╕ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреЛ Node.js. рдореЗрдВ рдПрдХ рдореМрдЬреВрджрд╛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдЕрдЬреАрдм рдЕрдореВрд░реНрддрддрд╛ рд╣реИ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Node.js. рдореЗрдВ AMD рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛
CJS, Node.js рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
define()
рдЖрд╡рд░рдг рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рдХрд╛рдп рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрдбреЗрдВрдЯ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдФрд░ рдирд┐рд░реНрдпрд╛рдд рджреГрд╢реНрдп рдФрд░ рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдФрд░ рдХрд░реАрдм
define()
ред рдЕрдкрдиреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
ES6 рдореЙрдбреНрдпреВрд▓
import "dep1" as dep1; import "dep2" as dep2; export var name = function () { return dep1 + dep2; };
рдХреЙрдордирдЬреЗрдПрд╕ / рдореЙрдбреНрдпреВрд▓
var dep1 = require("dep1"), dep2 = require("dep2"); exports.name = function () { return dep1 + dep2; };
рдПрдПрдордбреА
require(['dep1', 'dep2'], function (dep1, dep2) { return { name: function () { return dep1 + dep2; } }; });
рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдПрдордбреА рдкрд░ рд▓реМрдЯрдирд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ - рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ r.js рдореЗрд░реЗ CJS рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рдкреЗрдЯреЗред
2 рдореЙрдбреНрдпреВрд▓ рдмрд┐рд▓реНрдбрд░
рдЖрдЬ рд╕рдм рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рди рд▓рд┐рдЦреЗрдВ, рдлрд┐рд░ рднреА рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рдВрдЪ, рд╕рдВрдЧреНрд░рд╣, рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕реАрдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЖрд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд▓реЗрдХреНрдЯрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХрд▓реЗрдХреНрдЯрд░ рдореБрдЭреЗ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдореМрдЬреВрдж рд╣реИрдВ, рдЕрдЧрд░ рдореИрдВрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рдкрд░ рдХреЛрдИ рдЧрд▓рддреА рдХреА рд╣реИ, рдЪрд╛рд╣реЗ рдореИрдВрдиреЗ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реЛред
рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВ 1 рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ "рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕" рдФрд░ "рдореЗрд░рд╛ рдирд╣реАрдВ" "рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП" (рдмреВрдЯрд▓реЛрдбрд░ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдФрд░ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреЛрдбрд╝рдиреЗ) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдХрд▓-рдкреГрд╖реНрда рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдФрд░ рдХреИрд╢ рдХреЛ рдЖрдЬ рдзреЛрдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдорд┐рдирдЯред рдСрд▓-рдЗрди-рд╡рди рдЕрд╕реЗрдВрдмрд▓реА рдЖрдкрдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рджреМрд░рд╛рди "рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░" рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
3 рд▓рдЪреАрд▓реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдгрд╛рд▓реА: рдирд┐рд░реНрднрд░рддрд╛, рд╡рд┐рд░рд╛рд╕рдд, рдорд┐рд╢реНрд░рдг
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рд╣реИ, рдореЗрд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ, рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдФрд░ рд╕реНрдХреНрд░рд┐рдмрд▓ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рдиреАрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ
prod
рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ,
dev
рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрд╕рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд╡рд╣рд╛рдБ рднреА рд╣реИрдВ
ru
рдФрд░
en
, рдЬреЛ рд╣рдо
prod+en
,
dev+ru
ред рдЕрдм, рдХрд┐рд╕реА рднреА "рд╕рд╛рдорд╛рдиреНрдп" рдФрд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ (
prod-ru
,
prod-en
,
dev-ru
,
dev-en
) рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 4 "рд╕реВрдЦреА" рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ:
prod
,
dev
,
ru
,
en
ред
4 рд╕реАрдПрд▓рдЖрдИ
рдпрд╣ рд░реЛрдмреЛрдЯ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрдзрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдпрд╛ рдЖрдкрдХреЛ
-- ----
рдЯреВ
-- ----
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рд╣реА рд░реЛрдмреЛрдЯ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
Makefile
рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдмрд╣реБрдд рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдХреЛ
Makefile
рджреЗрддрд╛ рд╣реИред
рдЬрд┐рддрдиреА рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╛рд░-рдмрд╛рд░ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣реА рддрд░реНрдХ рдЙрдкрдЦрдВрдбреЛрдВ рдХреЗ рдирд╛рдо рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╛рдж рд░рд╣реЗ рдФрд░ рдиреНрдпреВрдирддрдо рд▓рд┐рдЦ рд╕рдХреЗред
рддреБрд▓рдирд╛
$ tool make -f path/to/build_name.js -o path/to/build.js
рдФрд░
$ tool make build_name
рдФрд░ рдЕрдм, рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХрдВрд╕реЛрд▓ рдХреЗ рдЗрд╕ рд▓рдВрдмреЗ рдХрдорд╛рдВрдб рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдЯреВрд▓ рд╕реЗ рдирдлрд░рдд рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ 1 рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдпрдж рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлреЛрдордирд┐рдХ рдЯреВрд▓ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдЪрд░рдг 6: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд░реЗрдВ
Browserify рдПрдХ рдРрд╕рд╛ рдЯреВрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА Node.js рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдмрд╕
browserify main.js > bundle.js
рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдереЛрдбрд╝реА рджреЗрд░ рддрдХ рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Node.js рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрдкрдирд╛рдирд╛ред рдмреНрд░рд╛рдЙрдЬрд░ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд┐рдирдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬрдм рдЧреИрд░-рдЕрдиреБрдХреВрд▓рд┐рдд рддреГрддреАрдп-рдкрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдерд╛ рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд╕рдХреЗред
рд╕реНрдЯреЗрдЬ 7: рдПрд▓рдПрдордбреА

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ
рдПрд▓рдПрдордбреА рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред рдореИрдВ рдЕрдм рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдЯреВрд▓ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред
рдирддреАрдЬрддрди, рдПрдХ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рдЧ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рдерд╛ред
рдпрд╣рд╛рдБ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ LMD рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддреА рд╣реИрдВ:
рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ 1 рд╡рд┐рдзрд╛рдирд╕рднрд╛
рдЪреВрдВрдХрд┐ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ, рддреЛ рдЙрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? Lmd рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдкрде рджреЛрдиреЛрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрдиреНрдлрд╝рд┐рдЧрд▓реНрд╕ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
{ "name": "My Config", "root": "../js", "output": "../build.lmd.js", "modules": { "main": "index.js" }, "optimize": true, "ie": false, "promise": true }
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реМ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ - рддреЛ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рдпрд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП "рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдо" рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
{ "modules": { "main": "index.js", "<%= file %>Template": "templates/*.html" } }
рдФрд░ рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рд╕реАрдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдордХреНрдЦреА рдкрд░ рд╕рдм рдХреБрдЫ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
2 рд╕рд╛рд░ рдПрдлрдПрд╕: рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреА рдХрдореА
рдПрдХ рдУрд░ FS рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ рдФрд░ HTTP рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИ рдФрд░ HTTP рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ URL рдХрд╛ рдкрд╛рда рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдордирдорд╛рдиреЗ рдирд╛рдореЛрдВ рдХреЗ рддрд╣рдд рд╕реАрдбреАрдПрди рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рд╕рд╛рд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╢реБрд░реВрдЖрдд рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЕрдореВрд░реНрддрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓реЛрдХрд▓ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрд╣рдд locale.ru.json рдФрд░ locale.en.json рджреЛрдиреЛрдВ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдорд╛рди рд╣реИ, рд╣рдо рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдФрд░ рдЖрдк рднреВрд▓ рдЧрдП рд╣реИрдВ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рддрд╣рдд рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓ рдЫрд┐рдкрд╛рдИ рдЧрдИ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕
lmd info
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$ lmd info build_name | grep module_name info: module_name тЬШ plain тЬШ тЬШ тЬШ info: module_name <- /Users/azproduction/project/lib/module_name.js
3 рдЕрдзрд┐рднрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ () рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕
рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдереЛрдбрд╝рд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдмрд╕
require()
рдЕрдореВрд░реНрдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рдФрд░
require.*()
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
*
рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
require.js()
$.loadScript
require.js()
$.loadScript
рд╕рдорд╛рди рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓
require.js()
рд▓реЛрдб
$.loadScript
ред
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ LMD рдЖрдкрдХреЛ "рд╕рд╣реА рдХреЛрдб" рд▓рд┐рдЦрдиреЗ рдкрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреЛрдб рдореЗрдВ рдПрд▓рдПрдордбреА 3 рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдирд╣реАрдВ рднреВрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛: рд╕реАрдПрд╕рдПрд╕, рд╕рдорд╛рдирд╛рдВрддрд░ рдФрд░ рд╡рд╛рджрд╛
require.css(['/pewpew.css', '/ololo.css']).then(function () { });
рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдкреНрд▓рдЧрдЗрди
var js = require.js; js('http://site.com/file.js').then(function () { });
рдЖрдк рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдФрд░ рдорд┐рдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓рдЧ рдЗрди рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
4 рдПрдбрд╛рдкреНрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓
рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред LMD рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ CJS рдореЙрдбреНрдпреВрд▓ рдмрдирд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдФрд░ JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдкрд╛рда рджреЗрдЦреЗрдВ) рдпрд╛ рдПрдбреЗрдкреНрдЯрд░ред рдЙрд╕реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рдПрд▓рдПрдордбреА рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдИрдорд╛рдирджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рд┐рдо рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЖрдЬ, рдПрд▓рдПрдордбреА рдореЗрдВ рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдФрд░ рд╣рд╛рдВ, рдПрд▓рдПрдордбреА рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред LMD рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рдореЗрд░реЗ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рдореИрдВ LMD рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рднрд╡рд┐рд╖реНрдп?

рд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпреЗ рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред рдЙрдирдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрдИ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ: рдЖрдпрд╛рдд, рдирд┐рд░реНрдпрд╛рдд, рдореЙрдбреНрдпреВрд▓ рдЖрд╡рд░рдг (рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рд╡реЗ
рд╕реАрдЬреЗрдПрд╕ рдФрд░ рдПрдПрдордбреА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рд╡реЗ рдЕрдм рдорд╕реМрджреЗ рдореЗрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдЖрдпрд╛рдд рд╕реНрдерд┐рд░ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛:
<script> import {get, Deferred} from "http://yandex.st/jquery/3.0/jquery.min.js"; get('/').then(console.log.bind(console)); </script>
рдпрд╣ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ
<script src="http://yandex.st/jquery/3.0/jquery.min.js"> <script> var get = $.get, Deferred = $.Deferred; get('/').then(console.log.bind(console)); </script>
рдмрджрд▓реЗ рдореЗрдВ, рд▓реЙрдХ рдХреЛ
<script async/>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рд╕рд╣реА рдирд╣реАрдВ рд╣реИ:
Loader.load('http://json.org/modules/json2.js', function(JSON) { alert(JSON.stringify([0, {a: true}])); });
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рддрдм рдЗрддрдирд╛ рд╣реА рдХрд╛рдлреА рд╣реЛрдЧрд╛ред
рдорд╛рдирдХ рдкрд░ рдЕрдм рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЖрдЬ рджрд┐рдЦрд╛рдпрд╛ рд╡рд╣ рдХрд▓ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ)ред рдЖрдЬ, рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЙрд╕реА рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдПрдордбреА рдЬреИрд╕реЗ рдЬрдВрдЧрд▓реА рд╣реИрдХ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред рдЖрдЬ, ECMAScript рд╡рд┐рдХрд╛рд╕ рдХреА рдПрдХ рджрд┐рд╢рд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рдФрд░ рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рджрд┐рд╢рд╛ рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдЬ, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рд╣реИ; рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓рд░ рдПрдореБрд▓реЗрдЯрд░ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЗ рдкрд╛рд╕ рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕реАрдЬреЗрдПрд╕ рдФрд░ рдПрдПрдордбреА рдореЗрдВ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз (рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░реЗрдХ, рдЯреНрд░реИрдлрд╝рд┐рдХ, рд▓реИрдЧ) рд╣реИрдВ рдЬреЛ рдХрдИ рдкрд░рд┐рдЪрд┐рдд рдЖрдпрд╛рддреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд▓реЛрдбрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓рд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдИрдПрд╕ 6 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ рдпрд╣ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИред
materiel
рдпрджрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓рд░ рдкрде рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдореЗрд░реЗ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд░реНрдЧреАрдХрд░рдг рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред
рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рдореЙрдбреНрдпреВрд▓" рдФрд░ рдЙрдирдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред рд╡рд░реНрдЧреАрдХрд░рдг рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдЖрдЗрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ рдлрд┐рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдоред
- рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдк
- рдореИрдиреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг
- рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ
- рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ
- рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ
- рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣реБрдВрдЪ
- рдордирдорд╛рдирд╛
- рдЧрддрд┐рд╢реАрд▓
- рдирд┐рд╡реЗрджрдХ
- рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
- рдЕрд░рд╛рдЬрдХ рдирд┐рд░реНрдпрд╛рдд
- рдордЬрдмреВрдд рдкреНрд░рдмрдВрдзрд┐рдд рдирд┐рд░реНрдпрд╛рдд
- "рд╕реНрд╡-рдирд┐рд░реНрдпрд╛рдд" рдПрдХ рд╕рдЦреНрдд рдирд╛рдо рдХреЗ рд╕рд╛рде
- рдХрд╕реНрдЯрдо рдирд╛рдорд╛рдВрдХрд┐рдд рдирд┐рд░реНрдпрд╛рдд
- рдИрдорд╛рдирджрд╛рд░ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд
- рд╕рд╛рдЗрдб рдореЙрдбреНрдпреВрд▓
- рдмрд┐рдирд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ
- рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдореБрдЦреМрдЯрд╛
- preprocessing
- рд╕реНрдереИрддрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
- рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- рдореЙрдбреНрдпреВрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛
- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╢реБрд░реВ рдореЗрдВ рдорд╛рдВрдЧ рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
- рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
- рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
- рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░
- рдкреНрд░рдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░
- рдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧрд╛рд╡
- рдореЙрдбреНрдпреВрд▓ рдкреГрдердХ рдирд╣реАрдВ рд╣реИрдВ
- рдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧ
- рдореЙрдбреНрдпреВрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреГрдердХ рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдк
рдЕрд╕реЗрдВрдмрд▓реА рдЯреВрд▓ рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдХрд┐рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ / рдЖрд░рдВрдн рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдирд┐рд░реНрднрд░рддрд╛, рдмрджрд▓реЗ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдкред рдореИрдиреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг
рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдиред рдбреЗрд╡рд▓рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<script src="deps/dep1.js"/> <script src="deps/dep2.js"/> <script src="moduleName.js"/>
рдФрд░ рддрджрдиреБрд╕рд╛рд░
main.js
var moduleName = function () { return dep1 + dep2; };

рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ

рдЬрдм рдХрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рд╕рднреА рдЕрдкрдиреЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИ

рдЬрдм рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реЗ рдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЗрдВ = рдПрдХрд╛рдзрд┐рдХ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз
"рдЬрд▓реНрджреА рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд"ред
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдкред рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛ рдмрд╛рд╣рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреА рд╣реИ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЯреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб / рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
LMD рдореЗрдВ рдЗрд╕ config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
{ "modules": { "main": "moduleName.js" "<%= file %>": "deps/*.js" } }
рдФрд░ рддрджрдиреБрд╕рд╛рд░
main.js
var dep1 = require('dep1'), dep2 = require('dep2'); module.exports function () { return dep1 + dep2; };

рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реИрдВ (рдЖрдк рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЛрдИ рднреА рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ)

рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗ рдмрд┐рдирд╛, рдЖрдк рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
рдРрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХ
рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ / рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдкред рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛, рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓реЛрдбрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддрдм рддрдХ рдореЙрдбреНрдпреВрд▓ рдЕрдкрдирд╛ рдХрд╛рдо рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛редрдпрд╣ рд╡рд┐рдзрд┐ AMD (рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ require(['deps/dep1', 'deps/dep2'], function (dep1, dep2) { return function () { return dep1 + dep2; }; });
рдпрджрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрдорддреМрд░ рдкрд░ рдХреЙрдордирдЬреЗрдПрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИредрд╡рд┐рдХреГрддрд┐рдпреЛрдВ require(['deps/dep1', 'deps/dep2', 'deps/dep3', 'deps/dep4', 'deps/dep5', 'deps/dep6', 'deps/dep7'], function ( dep1, dep2, dep3, dep4, dep5, dep6, dep7) { return function () { return dep1 + dep2; }; });
рдХреЙрдорди рдЬреЗрдПрд╕рдПрд╕ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ define(function (require, module, exports) { var dep1 = require('dep1'), dep2 = require('dep2'), dep3 = require('dep3'), dep4 = require('dep4'), dep5 = require('dep5'), dep6 = require('dep6'), dep7 = require('dep7'); return function () { return dep1 + dep2; }; });
рдЗрд╕ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреА рд╣реИрдВред рдпрд╣ 95% рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ (рдПрдПрд╕рдЯреА рдпрд╛ рдЪрддреБрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг) рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдХреЛрдб рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп) рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рднреА рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредрдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдИрдорд╛рдирджрд╛рд░ рдореЙрдбреНрдпреВрд▓" рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рд╣реИ - require('templates/' + type)
рдФрд░ рдирд┐рдпрдорд┐рдд рдЗрд╕реЗ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИред рдбрд╛рдпрдирд╛рдорд┐рдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдПрдХ рджреБрд░реНрд▓рдн рдЪреАрдЬрд╝ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИред
рд▓рдЧрднрдЧ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реА рдмрддрд╛рдИ рдЧрдИ рд╣реИрдВред
рдХрдиреНрдлрд╝рд┐рдЧрд▓реНрд╕ рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЛрдИ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд╡реИрд╕реЗ рднреА рдХреЙрдиреНрдлрд┐рдЧ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ
рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ / рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИрдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдкред рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВредрдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП npm рдФрд░package.json
{ "dependencies": { "express": "3.x", "colors": "*" } }
рдФрд░ рддрджрдиреБрд╕рд╛рд░ main.js
рдбреЗрд╡рд▓рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред package.json
рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдмрджрд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕реАрдзреЗ рдЗрд╕рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред require('pewpew.js')
рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реЗ рдкреНрд▓рд╕рд╕ рдФрд░ рдорд┐рдиреНрдпреВрд╕ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред
рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реА рд╡рд░реНрдгрд┐рдд рд╣реИрдВ
ред рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛
рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рд▓реНрдб рдЯреВрд▓ / рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣реБрдВрдЪ
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЕрдкрдиреЗ рднреАрддрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИредрдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪред рдордирдорд╛рдирд╛
рд╕рднреА рдореЙрдбреНрдпреВрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдпрд╛ рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рдЦреБрд▓реЗ рд░реВрдк рд╕реЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ, рдХрд╣реАрдВ рднреА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред var dep1 = 1; var dep2 = 2; alert(dep1 + dep2);
рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╡реЗ рдмрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИред
рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдИ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЖрдкрдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдирд╛рдо рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ)рдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪред рдЧрддрд┐рд╢реАрд▓
рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ "рд▓реЛрдбрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ - require()
рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдХреЗ define()
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ "рдореЙрдбреНрдпреВрд▓ рдХреНрд▓реЛрдЬрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред var dep1 = require('./deps/dep1'), dep2 = require('./deps/dep2'); alert(dep1 + dep2);
рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде define()
require(['./deps/dep1', './deps/dep2'], function (dep1, dep2) { alert(dep1 + dep2); });
рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рдордЭрдирд╛ / рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди
рд╣реИред рдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдХрд┐рд╕реА рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛ рдЖрджрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЖрдк рд▓рдЧрднрдЧ рдкреВрд░реА рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдб рдереЛрдбрд╝рд╛ рд╡рд░реНрдмреЛрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╢реБрд▓реНрдХ рд╣реИ,
рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪред рдирд┐рд╡реЗрджрдХ
рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХреМрди рд╕рд╛ рд╕реЗрдЯ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдЖрдпрд╛рдд рдирд┐рд░реНрдорд╛рдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред import * from "dep1"; import * from "dep2";
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рддрд╣рдд рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рдПрдПрдордбреА рдкрд░рд┐рднрд╛рд╖рд┐рдд () define('module', ['./deps/dep1', './deps/dep2'], function (dep1, dep2) { });
рд╕реНрдЯреЗрдЯрд┐рдХ рдЖрдпрд╛рдд рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ ES3- рд╕рдВрдЧрдд рдореЙрдбреНрдпреВрд▓ ES3- рд╕рдВрдЧрдд рдореЗрдВ рдХреЛрдб рд░реАрдореЗрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдВрднрд╡ (рдкреВрд░реНрдг рдпрд╛ рдЖрдВрд╢рд┐рдХ)
ES6 рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрд╡рд╛рдж рд╕рдВрднрд╡
рд╢реБрджреНрдз рд░реВрдк рдореЗрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИрдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
рдЕрдзрд┐рдХрддрд░, рдореЙрдбреНрдпреВрд▓ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛, рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ (рджрд┐рдирд╛рдВрдХ, рд╕рдВрдЦреНрдпрд╛, i18n, рдЖрджрд┐ рдХрд╛ рдкреНрд░рд╛рд░реВрдк) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреИрд╕реЗ рдХрд╣рддрд╛ рд╣реИ "рдореИрдВ рдРрд╕реЗ рдФрд░ рдРрд╕реЗ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред"рдирд┐рд░реНрдпрд╛рддред рдЕрд░рд╛рдЬрдХ рдирд┐рд░реНрдпрд╛рдд
рдореЙрдбреНрдпреВрд▓ рдХрд╣реАрдВ рднреА, рдХрднреА рднреА, рдХреБрдЫ рднреА рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } var dep1 = b;

рд╣реЗрд▓ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдФрд░ рдПрдХ рдмреБрд░реЗ рд╕рдкрдиреЗ рдХреЛ рд░реЛрдХрдирд╛, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдирд┐рд░реНрдпрд╛рддред рдордЬрдмреВрдд рдкреНрд░рдмрдВрдзрд┐рдд рдирд┐рд░реНрдпрд╛рдд
рдпрджрд┐ рд╣рдо IIFE рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╡рд┐рдзрд┐ рдорд┐рд▓ рдЬрд╛рдПрдЧреАред рдореЙрдбреНрдпреВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЭреВрда рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред var dep1 = (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; })();
рдпрд╛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } exports.dep1 = b; })(exports);
рдпрд╛ рдПрдПрдордбреА рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ define('dep1', [], function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; });
рдпрд╣ рд╕рд░рд▓ рд╣реИред
рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдХреЗрд╡рд▓ AMD рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред
рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдирд╛рдо рд╣реЛрдЧрд╛редрдирд┐рд░реНрдпрд╛рддред "рд╕реНрд╡-рдирд┐рд░реНрдпрд╛рдд" рдПрдХ рд╕рдЦреНрдд рдирд╛рдо рдХреЗ рд╕рд╛рде
рдпрд╣ рд╡рд┐рдзрд┐ "рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкрдВрдЬреАрдХрд░рдг" рдХреЗ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ready()
, рдЬрд┐рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ 2 рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } ready('dep1', b); })();
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗ load()
рд╕рдорд╛рди рдПрдХ рдлрд╝рдВрдХреНрд╢рдиrequire()
load('dep1', 'dep2', function (dep1, dep2) { ready('dep3', function () { return dep1 + dep2; }); });
load('dep3', do.stuff);
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдореЗрдВ рджреЗрд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЭреВрда рд╣реЛрдЧрд╛ред
рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореЙрдбреНрдпреВрд▓ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдорд╛рдд рджреЗрддрд╛ рд╣реИ)ред
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдкрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдирд┐рд░реНрдпрд╛рддред рдХрд╕реНрдЯрдо рдирд╛рдорд╛рдВрдХрд┐рдд рдирд┐рд░реНрдпрд╛рдд
рдореЙрдбреНрдпреВрд▓ рди рддреЛ рдЕрдкрдирд╛ рдирд╛рдо рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдпрд╣ рдЭреВрда рд╣реЛрдЧрд╛ред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛редрдпрд╣ CommonJS рдореЙрдбреНрдпреВрд▓ рд╣реИ var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } module.exports = b;
рдпрд╛ рдЕрдирд╛рдо рдПрдПрдордбреА define([], function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; });
рд╣рдо рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред var dep1 = require('deps/dep1');
рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИ рдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ред рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ редрдирд┐рд░реНрдпрд╛рддред рдИрдорд╛рдирджрд╛рд░ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд
рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рд╣рд░ рджреВрд╕рд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред ECMAScript 6 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдмрд╣реБрдд рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЗрд╕рд▓рд┐рдП рдЬрд▓реНрдж рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдПрдВрдЧреЗредрд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред module "deps" { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } export var dep1 = b; export var dep2 = b + 1; }
рдЖрдк рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рднреА рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ module {}
ред
рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ import * from "deps"; console.log(dep1);
рдирд╛рдо рд╡рд┐рд╡рд╛рджреЛрдВ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ "рдиреЗрдорд╕реНрдкреЗрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ import "crypto" as ns; console.log(ns.dep1);
рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ import {dep1} from "deps"; console.log(dep1);
рдХрдИ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдЖрдпрд╛рдд - рдкрд░рд┐рдЪрд┐рдд рдФрд░ рджреГрд╢реНрдпред
рдпрд╣ ECMAScript 6.
рдЖрдкрдХреЛ ES6 рдореЙрдбреНрдпреВрд▓ рдХреЛ ES3- рд╕рдВрдЧрдд рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрд╕рд╛рдЗрдб рдореЙрдбреНрдпреВрд▓
рдЖрдЬ, рдореЙрдбреНрдпреВрд▓ рд╕рд╣рд┐рдд рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрдПрдордбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд╕рдорддрд▓ рдлрд╛рдЗрд▓реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░реЗрдВредрдмрд┐рдирд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ
HTML рдореЗрдВ рд╕рдм рдХреБрдЫ <script src="deps/dep1.js"/> <script src="deps/dep2.js"/> <script src="moduleName.js"/>
рдпрд╣ рд╕рд░рд▓ рд╣реИред
рдЬрдм рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдХрд╛рд░рдг рдзреАрдорд╛ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
HTML рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реБрдПред
рдирдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ - рдирдИред HtmlрдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдореБрдЦреМрдЯрд╛
рд╣рдо рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ $ cat **/*.js > build.js
рдЙрдкрдпреЛрдЧ
<script src="build.js"/>
рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
рдХреЗрд╡рд▓ 1 рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдУрдПрд╕ рдФрд░ рдПрдлрдПрд╕ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редрдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ред preprocessing
рд╡рд┐рдзрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ "рдЯреИрдЧ" рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИ - include('path/name.js')
рдпрд╛ // include path/name.js
рд╕рдорд╛рди include('deps/dep1.js'); include('deps/dep2.js'); var moduleName = function () { return dep1 + dep2; };
рдпрд╣ рд╕рдм рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред var dep1 = 1; var dep2 = 2; var moduleName = function () { return dep1 + dep2; };
рддрджрдиреБрд╕рд╛рд░, рдиреЗрд╕реНрдЯреЗрдб рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрднреА рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреЗрд╡рд▓ 1 рдлрд╝рд╛рдЗрд▓
рдПрдХрддреНрд░ рдХреА рдЧрдИ рд╣реИред рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╡рд┐рд░рд╛рд╕рдд" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред include
рдпрджрд┐ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдмреЗрд╡рдХреВрдл рд╣реИ, рддреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдФрд░ рдЕрдиреНрдп рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ
рд╕рдВрднрд╡ рд╣реИрдВред рдпрджрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореЙрдбреНрдпреВрд▓рдореЗрдВ рдХреЛрдб рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕рдВрднрд╡ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдб рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓, "use strict"
рдирд╛рдо рд╕рдВрдШрд░реНрд╖ рдФрд░ рдЕрдиреНрдп рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ редрдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ (function () { "use strict"; var i = 3; include('dep1');
рдФрд░ рдЙрд╕рдХрд╛ рдирд╢рд╛ var i = 4, dep = 01234;
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ ;-)рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ред рд╕реНрдереИрддрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдирд┐рд░реНрднрд░рддрд╛ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдпрд╣ рд╡рд┐рдзрд┐ r.js (рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛) рдФрд░ рдмреНрд░рд╛рдЙрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ (рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП Node.js рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪрд╛)ред рд╡реЗ рдПрдПрд╕рдЯреА рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рднрд╛рд╖рд┐рдд / рдХреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд╣рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВредрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ require(['dep1', 'dep2'], function (dep1, dep2) { return function () { return dep1 + dep2; }; });
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ r.js рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдпрд╣рд╛рдБ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ define('dep1', [], function () { return 1; }); define('dep2', [], function () { return 2; }); require(['dep1', 'dep2'], function (dep1, dep2) { return function () { return dep1 + dep2; }; });
browserify рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдмрд░реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХрддреНрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╛рд░реВрдк
рдХреЗрд╡рд▓ 1 рдлрд╝рд╛рдЗрд▓ рдЬрд╛ рд░рд╣рд╛
рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдпрд╛ рд╕рд┐рдорд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЬрд╛рджреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП
рдкреВрд░реНрд╡рдкреНрд░рдХреНрд░рдордХ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ (рдЧрддрд┐рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг)
рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкреИрд░рд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛рд╕рд╛рдЗрдб рдореЙрдбреНрдпреВрд▓ред рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд▓реЗрдХреНрдЯрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдХреБрдЫ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИредрдпрд╣ рд╡рд┐рдзрд┐ LMD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред { "root": "../js", "modules": { "main": "main.js", "dep1": "deps/dep1.js", "dep2": "deps/dep2.js" } }
рд╡рд┐рдХрд▓реНрдк, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 2 рдмрд╛рд░ рдХреНрдпреЛрдВ?рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред LMD рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ config рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдиреЗ рджреЗрддрд╛ рд╣реИ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг / рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрде рдирд╣реАрдВ рдЪрд▓рд╛рддрд╛ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдореВрд░реНрдд рдПрдлрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЙрдиреНрд╣реЗрдВ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рдПрдХ рд╕реНрдЯреЗрдк рдмреИрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП LMD рдореЗрдВ рдЧреНрд▓реЛрдм-рдЖрдИрдПрдирдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИредрдФрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдоредрдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред { "root": "../js", "modules": { "<%= file %>": "**/*.js" } }
рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦреЗрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╣реЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдПрд▓рдПрдордбреА рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LMD рд▓реЙрдХреЗрдЯ рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдзрд┐рдХ рдкреЗрдЪреАрджрд╛ рдирд┐рд░реНрдорд╛рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ : { "root": "../js", "modules": { "<%= file %><%= dir[0][0].toUpperCase() %><%= dir[0].slice(1, -1) %>": "{controllers,models,views}/*.js" } }
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:
рдиреЗрддреНрд░рд╣реАрди - рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп - рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
рд╕рд╛рд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо
рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд▓реЗрдХреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИрдореЙрдбреНрдпреВрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛
рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдХреЛрдб рдкреГрд╖реНрда рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдерд╛ - рдпрд╣ рдХреБрдЫ рдирд╛рдо рдХреЗ рддрд╣рдд рдкрдВрдЬреАрдХреГрдд рд╣реИ) рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЖрдЧреЗ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рд╕рдВрднрд╡ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдПрдПрд╕рдЯреА рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЬрдм рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИредрдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 'function a() {return Math.PI;}';
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред function a() { return Math.PI; }
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред function a() { return Math.PI; } a();
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдФрд░ рдЙрд╕рдХреЗ рдХреЙрд▓ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдореЛрдмрд╛рдЗрд▓ рдкрд░, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛редрд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рднрд▓реЗ рд╣реА рд╣рдореЗрдВ рдЕрднреА рдЙрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреБрдЫ рдЪрдХреНрд░ рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред var dep1 = (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; })();
рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдХреЛрдб рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝рддреА рд╣реИ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд▓реЗрдЯреЗрдВрд╕реА рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрддреА рд╣реИредрд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╢реБрд░реВ рдореЗрдВ рдорд╛рдВрдЧ рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
рдЕрдм рдПрдХ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ Node.js рдореЗрдВ AMD рдФрд░ рдореЙрдбреНрдпреВрд▓ рджреЛрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ define('dep1', [], function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; });
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рд╢рд░реАрд░ рдХреЛ рдорд╛рдВрдЧ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ return b;
рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ , рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╣реБрдд рдордЬрдмреВрдд рджреГрд╢реНрдп рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рд▓рдВрдмрддрд╛ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдб рдХреА рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐
рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЬрд░реВрд░рдд рд╣реИрдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ
рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╢реЛрдзрди, рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрд▓рдПрдордбреА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредLMD рдЕрд╕реЗрдВрдмрд▓реА рдкреАрд╕ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ) { 'dep1': '(function(){var a=10,b="";for(var i=0;i<a;i++){b+=i;}return b;})' }
рдЬрдм рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ dep1
, рддреЛ LMD рдЗрд╕ рдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИредрдХреБрдЫ рдЗрд╕ рддрд░рд╣: var resources = new Function('return ' + modules['dep1'])()(require, module, exports);
new Function
рдИрдорд╛рдирджрд╛рд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдб рдХрд╛ рдЖрд░рдореНрднрд┐рдХрд░рдг рд╕рдордп рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ new Function
рд╡рд┐рдкрд░реАрдд рдЙрддреНрдкрдиреНрди рдХреЛрдб , eval()
рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдСрдкрд░реЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред рдПрдХ
рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ @ рдбреЛрдо рдХрд╛ рдЕрдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдпрд╣рд╛рдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рджреВрд░ рд╕реЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╕рдордХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ "рдкреНрд░рдХрд╛рд╢ рдХреА рдЧрддрд┐ рд╕реЗ" рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ @ DOM рдореЗрдВ EventLoop рдмреНрд▓реЙрдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╢рд╛рдпрдж рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛредрд╣рдо рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рднреБрдЧрддрдирд╛ рд╣реЛрдЧрд╛ :)рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░
рдЧреИрд░-рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдХреЛрдб рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓реЛрдбрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ jQuery.getScript(file)
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ: var script = document.createElement('script'); script.src = file; script.onload = done; document.head.appendChild(script);
рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдП рдЧрдП рдХреНрд░рдо рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, LAB.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XHR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдХреЛрдб рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред XHR, рдмрджрд▓реЗ рдореЗрдВ, рдЕрдкрдиреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред $LAB .script("framework.js").wait() .script("plugin.framework.js");
рдмрд╛рдХреА рд▓реЛрдбрд░, рдЬреИрд╕реЗ рдХрд┐ YepNope рдФрд░ script.js, рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╕рд╕реНрддрд╛ рд╕рдорд╛рдзрд╛рди
XHR рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдЦрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИрдкреНрд░рдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░
рдХреЛрдИ рднреА рд╡рдпрд╕реНрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдорд╛рд░реЛрд╣ рдХрд░рддрд╛ рд╣реИ require()
рдФрд░ define()
RequireJS рдХреАредрдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ require()
рдЬреЗрдЖрд░рдЬреЗ рд╕реЗ рдХрд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред require(['dep1', 'dep2'], function (dep1, dep2) { console.log(dep1 + dep2); });
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, LMD рдореЗрдВ, рдмрдВрдбрд▓ рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реЛрддреА рд╣реИ - рдХрдИ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдЗрдХрдЯреНрдареЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдмрдВрдбрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред _e4fg43a({ 'dep1': function () { return 1; }, 'dep2': 2, 'string': 'Hello, <%= name %>!' });
require.bundle('name').then(function () {
рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╛рд░рдВрдн рджреЛрдиреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди;
рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдкрд╛рд░рджрд░реНрд╢реА рдбрд╛рдЙрдирд▓реЛрдб;
рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИрдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧрд╛рд╡
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдпрд╛ рдЙрдирдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рдЕрд░рд╛рдЬрдХ рдкрд╣реБрдВрдЪ рдЕрдиреБрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ "рдХреЛрдб рдХреЛ рдЦрд░рд╛рдм рдХрд░ рд╕рдХрддреА рд╣реИ"ред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХреЛрдИ рдирд┐рд╢рд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╢реЛрдзрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордЭрдирд╛ рдФрд░ "рддреЛрдбрд╝рдирд╛" рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдмрд╛рдд рд╣реИредрдореЙрдбреНрдпреВрд▓ рдкреГрдердХ рдирд╣реАрдВ рд╣реИрдВ
рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдХрд╣реАрдВ рд╕реЗ рднреА рдХреЛрдИ рднреА рдбреЗрд╡рд▓рдкрд░ рд▓реЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред var dep1 = (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; })();
рдлрд┐рд░ рд╕реЗ, рдпрд╣ рд╕рд░рд▓ рд╣реИред
рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╢реНрд░рдо рдХрд╛ рдХреЛрдИ рд╡рд┐рднрд╛рдЬрди рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИредрдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧ
рдореЙрдбреНрдпреВрд▓ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдирд╛рдо рдЬрд╛рдирдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - require('pewpew')
ред рдЫрд┐рдкрд╛рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЗрд╕ - рдПрдПрдордбреА 2 рдХрд╛рд░реНрдпреЛрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рднреА рддрд░рд╣ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдирд╣реАрдВ рд╣реИ require()
рдФрд░ define()
ред рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХреЛрдб рдирд╛рдо рдЬрд╛рдирдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред define('dep3', ['dep1', 'dep2'], function (dep1, dep2) { return function () { return dep1 + dep2; }; });
рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИрдВ рдФрд░ рдЖрдк рдЧрд▓рддреА рд╕реЗ рдХреБрдЫ рдЦрд░рд╛рдм рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИред
рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдореЙрдбреНрдпреВрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреГрдердХ рд╣реИрдВ
рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрд╛рд╣рд░ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рдирд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ "рдореЙрдбреНрдпреВрд▓" рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: $(function () { var dep1 = (function () { var a = 10, b = ''; for (var i = 0; i < a; i++) { b += i; } return b; })(); $('button').click(function () { console.log(dep1); }); });
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреГрдердХ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдмрд╛рд╣рд░ рд╕реЗ рдЗрд╕рдХреЗ рдЕрдВрджрд░реВрдиреА рд╣рд┐рд╕реНрд╕реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ "рдмрдВрдж" рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджрд╛рдпрд░реЗ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЙрдирдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗредIEFE рдореЗрдВ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ: (function () { var dep1 = 1; var dep2 = 2; var moduleName = function () { return dep1 + dep2; }; })();
рдЗрд╕ рдмрд┐рд▓реНрдб рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQueryредLMD рдФрд░ Browserify рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓, рд▓реЗрдХрд┐рди рд╕рднреА рдореЗрдВ рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрдирдХреЗ рдореЙрдбреНрдпреВрд▓ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ "рдирд┐рдпрдВрддреНрд░рдг рднрд╛рдЧ" рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИрдВредрд╡реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдШреВрдо рд░рд╣реЗ рд╣реИрдВ: (function (main, modules) { function lmd_require() {}
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреБрд▓ рдЗрдиреНрд╕реБрд▓реЗрд╢рди рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИрд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдПрдореБрд▓реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ
| AMD, YUI | ES6 | рд╕реАрдЬреЗрдПрд╕ / рдПрд▓рдПрдордбреА | IEFE |
---|
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓реНрдк | рдореЙрдбреНрдпреВрд▓ + рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ | рдореЙрдбреНрдпреВрд▓ рдореЗрдВ | рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ | рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ |
---|
рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣реБрдВрдЪ | рдЧрддрд┐рд╢реАрд▓ | рдирд┐рд╡реЗрджрдХ | рдЧрддрд┐рд╢реАрд▓ | рдордирдорд╛рдирд╛ |
---|
рдирд┐рд░реНрдпрд╛рдд | рдПрдХ рдордирдорд╛рдирд╛ рдирд╛рдо рдХреЗ рд╕рд╛рде | рдИрдорд╛рдирджрд╛рд░ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд | рдПрдХ рдордирдорд╛рдирд╛ рдирд╛рдо рдХреЗ рд╕рд╛рде | рдЕрд░рд╛рдЬрдХ / рдмреЗрдХрд╛рдмреВ |
---|
рд╕рд╛рдЗрдб рдореЙрдбреНрдпреВрд▓ | рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг | рдЬрд░реВрд░рдд рдирд╣реАрдВ / рд╕рд╛рдордВрдЬрд╕реНрдп | рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ | рдХрдбрд╝реА |
---|
рдореЙрдбреНрдпреВрд▓ рд╡реНрдпрд╛рдЦреНрдпрд╛ | рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрд░ | рдореВрд▓ рд╕рдорд╛рдзрд╛рди | рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрд░ | рд╢реБрд░реВ рдореЗрдВ |
---|
рдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧрд╛рд╡ | рдкреГрдердХ | рдкреГрдердХ | рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ | рдЕрд▓рдЧ-рдерд▓рдЧ рдирд╣реАрдВ |
---|
рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╛рд░реВрдк
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓реЗрдЯрд░ рдкрд░ рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЬреЛ рдЖрдЬ рдореМрдЬреВрдж рд╣реИредрдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ
var moduleName = function () { return dep1 + dep2; };
рдирд╛рдо рд╕реНрдерд╛рди
var MyNs.moduleName = function () { return MyNs.dep1 + MyNs.dep2; };
IIFE рд╡рд╛рдкрд╕реА
var moduleName = (function (dep1, dep2) { return function () { return dep1 + dep2; }; }(dep1, dep2));
IIFE рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ
(function (exports, dep1, dep2) { exports.moduleName = function () { return dep1 + dep2; }; }(window, dep1, dep2));
рдПрдПрдордбреА
YUI рдореЙрдбреНрдпреВрд▓ рдПрдПрдордбреА рдХреЗ рд╕рдорд╛рди рд╢рдмреНрджрд╛рд░реНрде рд╣реИрдВред рдореИрдВ рдЙрдирдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред define(["dep1", "dep2"], function (dep1, dep2) { return function () { return dep1 + dep2; }; });
рдХреЙрдорди рдЬреЗрдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдПрдордбреА рдЖрд╡рд░рдг
define(function (require, module, exports) { var dep1 = require('dep1'), dep2 = require('dep2'); module.exports = function () { return dep1 + dep2; }; });
CommonJS
var dep1 = require('dep1'), dep2 = require('dep2'); module.exports = function () { return dep1 + dep2; };
UMD
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрдо рд╕реЗ рдХрдо 3 рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ рдЕрдЧрд░ рдЖрдк рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдкрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдПрдХ рдФрд░ рдорд╛рдорд▓рд╛ рд╣реИред рдпреЗ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗрд╡рд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд╡рд░рдг рд╣реИрдВ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рд╕рдВрд╕рд╛рдзрди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдпреВрдПрдордбреА: рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдореЙрдбреНрдпреВрд▓ рдбреЗрдлрд┐рдирд┐рд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ , рдЬрд┐рд╕рдиреЗ рд╕рднреА рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЖрд╡рд░рдг рдХреЛ "рдорд╛рдирдХреАрдХреГрдд" рдХрд┐рдпрд╛ред (function (root, factory) { if (typeof exports === 'object') {
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИредрдЖрджрд░
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди: рдЧрд╣рд░рд╛рдИ рдореЗрдВ
- YUI рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛
- AMD, CommonJS & ES рд╣рд╛рд░реНрдордиреА рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛
- рдПрдПрдордбреА рдХреНрдпреЛрдВ?
- рдПрдПрдордбреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИ
- рдПрдПрдордбреА рдХреНрдпреЛрдВ рдирд╣реАрдВ?
- рдкреНрд░рд╕реНрддрд╛рд╡ ES6 рдореЙрдбреНрдпреВрд▓
- ECMAScript.Harmony рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕реБрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЗрд▓рдирд╛
- рдИрдПрд╕ 6 рдореЗрдВ рд▓реЗрдЦрдХ, рдПрдХ рдирд┐рд░реНрдорд╛рдг-рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдИрдПрд╕ 5 рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓: рдЧреНрд░рдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ
рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдФрд░ рдЯрд╛рдЗрдкреЛрд╕, рдХреГрдкрдпрд╛ рдкреАрдПрдо рдХреЛ рднреЗрдЬреЗрдВред