2016-05-05 4 views
0

Я хотел бы приложить свое приложение к существующему приложению портала, которое использует REQUIREJS как amd loader. Я бы расширил это приложение, но я хотел бы пойти с загрузчиком SYSTEMJS с моей стороны. Не представляется возможным использовать модули в контексте systemjs, которые были загружены с помощью requirejs.Можно ли комбинировать SYSTEMJS с REQUIREJS?

Я подготовил plunkr примера для моей проблемы:

requirejs(['AlternateCase.js'], function(AlternateCase) { 
    console.log(AlternateCase); 
    System.import("app.js"); 
    }); 

https://plnkr.co/edit/nRnnHzRLyTJCT826WBo4

AlternateCase является угловым фильтром, который я загружаю с requirejs - приложение загружает с помощью systemjs. Я получаю объект filter (console.log), но я получаю «неизвестный поставщик» в своем приложении для фильтра.

Задача состоит в том, что код фильтра не должен быть изменен, поскольку она представляет собой приложение exsting, который я хочу, чтобы загрузить, но который я не могу изменить.

+0

'app.js' не экспортирует ничего, поэтому попытка потребовать его ничего не вернет. Посмотрите на [shim] (http://requirejs.org/docs/api.html#config-shim) для библиотек и файлов, которые не вызывают 'define' –

+0

Не уверен, если я вас правильно понимаю, но я бы хотел импортировать объект фильтра в app.js - не наоборот. Спасибо – Gerfried

+0

мой плохой я полностью неправильно понял вопрос - AlternateCase экспортирует что-нибудь? –

ответ

0

Я смог создать Plunker, который работает. https://plnkr.co/edit/a3ZMek8aUmBuusoIFBjE?p=preview

Я также выполнил альтернативное использование system.js для загрузки AMD путем перезаписи requirejs с помощью System.amdRequire.

window.requirejs = System.amdRequire; 

Однако, requirejs + systemjs хорошо сочетается.