Aurelia:如何使用 npm 包中的 View/Viewmodel?

Aurelia: How to use a View/Viewmodel from an npm package?

我们在应用程序的前端使用 Aurelia。由于我们将有几个基于它的不同项目,我希望能够将我们所有的自定义代码添加到一些 npm 包中,这些包可以由开发人员添加。 这将允许我们创建一个新的空项目,将依赖项添加到我们的可重用代码中,而不将其包含在项目的代码库中(因此可以根据需要单独更新)。

比如我想要一个工具包和一个服务包。这当然很容易。

但我不知道如何使用包含所有自定义可重用组件的 'ui' 包。这可能吗?我如何在 html 模板中要求组件?

如果无法做到这一点,有没有人知道如何将可重用代码与应用程序特定代码完全分开?

非常感谢!

当然可以,这就是 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>