Как я могу указать зависимости библиотеки с помощью SystemJS?

Используя SystemJS, как мне указать, что одна библиотека зависит от другой? Например, библиотека Bootstrap JavaScript зависит от jQuery. Исходя из документов SytemJS, я предположил, что укажу эту зависимость, используя System.config.meta имущество:

System.config({
    baseUrl: './scripts',
    defaultJSExtensions: true,
    map: {
        jquery: './lib/jquery-2.2.0.min.js',
        bootstrap: './lib/bootstrap.min.js'
    },
    meta: {
        bootstrap: {
            deps: ['jquery']
        }
    }
});
System.import('./scripts/app.js');

Но это, кажется, не имеет никакого эффекта. Когда я запускаю свое приложение, библиотека Bootstrap выдает Bootstrap's JavaScript requires jQuery ошибка - это означает, что Bootstrap загружается до jQuery.

Как я могу гарантировать, что jQuery всегда загружается до Bootstrap?

1 ответ

Решение

После слепого изменения вещей я столкнулся с конфигурацией, которая, кажется, работает. Вот мой конфиг:

System.config({
    defaultJSExtensions: true,
    paths: {
        jquery: './scripts/lib/jquery-2.2.0.min.js',
        bootstrap: './scripts/lib/bootstrap.min.js'
    },
    meta: {
        bootstrap: {
            deps: ['jquery']
        }
    }
});

System.import('./scripts/app.js');

Я думаю, что ключ менялся от map в paths,

РЕДАКТИРОВАТЬ

Примечание: узнав немного больше о SystemJS, я обнаружил, что намного легче позволить jspm выполнять тяжелую работу по управлению моей конфигурацией SystemJS.

Другие вопросы по тегам