Аурелия: Как использовать View/Viewmodel из пакета npm?
Мы используем Aurelia для внешнего интерфейса нашего приложения. Поскольку у нас будет несколько разных проектов на его основе, я хотел бы иметь возможность добавить весь наш пользовательский код в некоторые пакеты npm, которые могут быть добавлены разработчиками. Это позволило бы нам создать новый пустой проект, добавить зависимости в наш повторно используемый код, не включая его в кодовую базу проекта (так что при необходимости он может обновляться отдельно).
Например, я хотел бы получить пакет инструментов и пакет услуг. Это, конечно, довольно легко.
Но я не могу понять, как использовать пакет 'ui', который будет содержать все наши настраиваемые многократно используемые компоненты. Это вообще возможно? Как мне потребуется компонент в HTML-шаблон?
Если это не может быть сделано, есть ли у кого-нибудь представление о том, как аккуратно отделить повторно используемый код от кода конкретного приложения?
большое спасибо!
1 ответ
Конечно, вы можете, это то, что делает множество плагинов, доступных для aurelia. Один из способов - зарегистрировать ваши компоненты как глобальные ресурсы (в вашем пакете или плагине) и импортировать их в ваше клиентское приложение, пример CLI:
// from your plugin
aureliaConfig.globalResources([
'./jqm-loader',
'./jqm-page',
'./jqm-footer',
'./jqm-header'
]);
затем импортируйте их в свое приложение:
// aurelia.json
{
"name": "my-reusable-widgets",
"path": "../node_modules/my-reusable-widgets",
"main": "index",
"resources": [
"**/*.{css,html}" //to load them all or you can add individual files
]
}
затем используйте ваши виджеты:
<jqm-loader></jqm-loader>
...
если вы не хотите использовать globalResources, вы также можете использовать require:
<require from="my-reusable-widgets/jqm-header"></require>
<jqm-header></jqm-header>