2015-03-31 3 views
3

У меня есть модуль, написанный на чистом ES6, который я бы хотел использовать в отдельном веб-приложении. Точка входа модуля является main.js и содержит следующее:Относительная динамическая загрузка с помощью systemJS с использованием синтаксиса ES6/Babel

main.js

export { A } from './a'; 
export { B } from './b'; 
export { C } from './c'; 

Когда я использую systemJS импортировать этот main.js, затем пытается разрешить эти зависимости, локальные для веб-приложения , а не модуль.

GET http://localhost:9000/dist/a.js 404 (не найден)

Я вижу, что есть поддержка relative dynamic loading уже, но она включает в себя прохождение дополнительные функции к функции System.import, что я не с помощью - я используя синтаксис ES6.

Есть ли примеры или лучшие практики, как это сделать? Пожалуйста и спасибо.

ответ

1

Лучший способ для этого - взломать * ваш файл config.js. Нам нужно зарегистрировать новый «репозиторий» с помощью systemjs, который указывает на расположение библиотеки файловой системы. Для этого добавим следующую строку в наш config.js.

System.config({ 
    "map": { 
    ... 
    "lib": "path/to/lib/main" 
    ... 
    } 
}); 

Когда systemjs пытается загрузить lib, он находит запись карты и загружает все зависимости lib относительно этого места. Если библиотека находится в необоснованно удаленном месте, может быть полезно создать символическую ссылку каталога в приложении в библиотеке.

Смежные вопросы