Aurelia插件和功能有什么区别?

MaY*_*YaN 10 aurelia aurelia-framework

我正在尝试为我的应用注册几个插件但是我不确定应该怎么做.

我拥有的插件包括两个ValueConvertersgooy/aurelia-animator-tinyanimate我安装的插件JSPM.

这是我目前的实施:

资源\ index.ts/JS

export function configure(aurelia) {
  aurelia.globalResources('../from-now', '../date-format');
}
Run Code Online (Sandbox Code Playgroud)

main.ts/js(这是应用程序的入口点)

import {Aurelia} from 'aurelia-framework';

export function configure(aurelia: Aurelia): void {
        aurelia.use
            .standardConfiguration()
            .developmentLogging()
            .plugin('resources/index', 'gooy/aurelia-animator-tinyanimate'); 

        aurelia.start().then(function () { return aurelia.setRoot('views/app'); });
}
Run Code Online (Sandbox Code Playgroud)

转换器正在工作,但我没有看到tinyanimate要加载.

基于以上所述,我有以下问题:

  1. 我该如何移动gooy/aurelia-animator-tinyanimateindex.js文件?
  2. plugin()和之间有什么区别feature()

Ash*_*ant 14

功能与插件基本相同,只是它们存在于您自己的源代码树中.根据您的index.js文件,您需要加载您的功能,如下所示:

aurelia.use.feature('resources`);
Run Code Online (Sandbox Code Playgroud)

假设该功能的index.js文件位于该resources文件夹中.您可能想要将index.js文件更改为

export function configure(config) {
  config.globalResources('./from-now', './date-format');
}
Run Code Online (Sandbox Code Playgroud)

并更新您的目录结构以放入from-now.jsdate-format.js放在resources目录中.您不需要这样做,但从组织的角度来看,这是有道理的.更改参数名称只是为了更好地描述参数是什么(FrameworkConfiguration实例).

要加载gooy/aurelia-animator-tinyanimate在你的main.js文件,你将需要删除'resources/index'从调用参数plugin.然后Aurelia会为您正确加载插件.您的main.js文件应该看起来像这样:

export function configure(aurelia: Aurelia): void {
        aurelia.use
            .standardConfiguration()
            .developmentLogging()
            .feature('resources')
            .plugin('gooy/aurelia-animator-tinyanimate'); 

        aurelia.start().then(function () { return aurelia.setRoot('views/app'); });
}
Run Code Online (Sandbox Code Playgroud)

另请注意,import {Aurelia} from 'aurelia-framework';您的main.ts中不需要该行.

  • 上面尝试并得到404错误,寻找资源中每个类的.html视图.需要在'aurelia-framework'中添加`import {noView}; @noView`装饰器,以防止它查找html视图. (2认同)