Skip to content

vs-kurkin/xscript-require

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Implementation require for XScript and client-side

Version: 2.2

Lisence: MIT

Features:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выполнСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
  • Π’ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ 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.

About

Implementation require for XScript

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •