Lisence: MIT
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
- Π ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ XScript-Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎ Π΅Π³ΠΎ namespace ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΡΠΈ. ΠΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² {Module#load}. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ Π΄Π°Π»Π΅Π΅ ΠΎΡΠ΄Π°Π΅ΡΡΡ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠ΅ΡΠ°.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ {require.define}.
- Π Π΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ {require.global}. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ {require.setModuleNameSpace} Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΠΈΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· {require.path}.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² require.
ΠΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ {Module}.
###ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· JSDoc:
####ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ: require.path = ['/path/to/first/dir/', './path/to/second/dir']; require('name.space');
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ {Module#exports}, ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ "path/to/second/dir/name.space.js", Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° {Module#exports}, ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ "/path/to/first/dir/name.space.js".
####ΠΠΎΡΡΡΠΏ ΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½:
require('some.name.space');
XM.some.name.space; // TypeError: ΠΎΠ±ΡΠ΅ΠΊΡ XM Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅.
ΠΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° require
require.setModuleNameSpace('XM');
XM.some.name.space; // ΠΎΠ±ΡΠ΅ΠΊΡ {Module#exports}.
####Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
require.define('name.space', function (module, exports, require, basedir, global) {
// Π’Π΅Π»ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
});
####ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
// ΠΡΠ·ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
var A = require('A');
// Π Π΅ΠΊΡΡΡΠΈΠΈ Π½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ
// ΠΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ "A":
var B = require('B');
// ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ {@link Module#exports}
this.field = 'value';
// ΠΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ "B":
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ "A"
var A = require('A');
A.field; // undefined, ΠΌΠΎΠ΄ΡΠ»Ρ Π΅ΡΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
this.method = function () {
//
return A.field; // 'value'
}
####ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSDoc 3, ΡΠ±ΠΎΡΠΊΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ: path/to/jsdoc/tool -c conf.json README.md.