1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ddm-im-js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

Imjs v2.0

Мини-загрузчик модулей JavaScript на основе Promise.

Основные характеристики

Очень лёгковесный, размер минифицированного файла составляет 2.3 КБ, а размер при передаче gzip — 1.3 КБ.

Поддерживает модули AMD и API require в виде промисов.

Как использовать

Для определения модуля используйте следующий пример с использованием стандарта AMD для файла hello.js:

define([], () => {
    // Реализация каких-либо функций, классов или библиотек внутри модуля, затем возврат значения
    return "hello world";
});

Вы можете вызвать модуль hello.js, аналогично тому, как это делается в requirejs:

require("hello", hello => {
    // Возвращаемое значение модуля будет передано в качестве аргумента

    alert(hello); // Отображение возврата модуля
});

Также можно использовать методы async/await ES6 для вызова модуля hello.js:

(async () => {
    let hello = await require("hello");
    alert(hello);
})();

Если поддерживается предложение top-level await, то можно использовать его напрямую:

let hello = await require("hello");
alert(hello);

Вы также можете использовать require в определении модуля AMD:

define(async () => {
    let hello = await require("hello");
    //let a = await require("a");
    //let b = await require("b");

    // Для нескольких зависимых модулей
    //let [ hello, a, b ] = await Promise.all([
    //  require('hello'), require('a'), require('b')  //...
    //]);
    return hello.toUpperCase();
});

При вызове неподдерживаемого модуля AMD вы можете использовать hook для решения проблемы экспорта модуля:

// Например, загрузка jQuery
// Сначала помещаем файл jquery в папку ./lib/jquery.js

// Затем определяем hook
require.setHook("./lib/jquery", () => {
    return window.$;
});

// Затем вызываем модуль
require("./lib/jquery", $ => {
    $("#id").css({ color: red });
});

Настройки

cwd рабочая директория

// Текущая рабочая директория
require.cwd = "./assets/js";

// После установки cwd, вы можете использовать @ вместо пути к рабочей директории
define(["@/a.js"], a => {
    // a берётся из ./assets/js/a.js
});

default по умолчанию используется имя файла

// Если указан путь до каталога, то по умолчанию используется имя файла index.js
require.default = "index.js";

// Указание на каталог
define(["assets/lib/"], lib => {
    // lib берётся из ./assets/lib/index.js
});

tag метка версии кэша

// Все пути модулей будут иметь метку tag
require.tag = "v=1.0.1";

define(["assets/test"], test => {
    // Путь запроса для test будет assets/test.js?v=1.0.1
});

Кроме того, вы можете настроить скрипт <script> в вашем HTML:

<script
    src="assets/js/im.js"
    data-cwd="assets/js"
    data-default="index.js"
    data-tag="1.0.1"
    data-main="app.js"
></script>

<!-- 
    data-main указывает входной js файл,
    который автоматически импортируется и выполняется, что эквивалентно:
    require('app.js');
 -->

Экосистема

  • Используется unpkg
  • Совместимость с Preact для H5 шаблона game-spore-preact
  • Совместимость с React?
  • Совместимость с Vue?

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

1KB Promise-based js модуль загрузчик Развернуть Свернуть
JavaScript
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ddm-im-js.git
git@api.gitlife.ru:oschina-mirror/ddm-im-js.git
oschina-mirror
ddm-im-js
ddm-im-js
v2.0