Аурелия: Как использовать 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>
Другие вопросы по тегам