Документы Aurelia описывают, как настроить и использовать подключаемый модуль функций, по адресу http://aurelia.io/docs.html#features<. /а>
У меня возникли проблемы, потому что кажется, что jspm или Aurelia преобразуют пути к ресурсам. Я обнаружил, что если я укажу текущий путь с .aurelia.use.feature('./plugins/auth');
, то calvert-auth/index.js
не может быть найден при загрузке. Запрос выглядит корректно, но браузер выдает ошибку 404. Я исправил это, просто удалив "./" из .aurelia.use.feature('plugins/auth');
Затем я добавил вызов в configure() index.s для frameworkConfig.globalResources('auth'). Это вызывает новую ошибку 404, поскольку запрос относится к calvert-auth/auth.html вместо ожидаемого calvert-auth/auth.js.
Я подозреваю, что проблема может быть в конфигурации jspm или, может быть, в corejs, но пока не удалось ее изолировать.
Как создать и использовать внутренние подключаемые модули для Aurelia? Вот классы:
config.js
...
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
...
main.js
import 'bootstrap';
import authConfig from './auth-config';
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.feature('plugins/calvert-auth', (baseConfig) => {
baseConfig.configure(authConfig);
});
aurelia.start().then(a => a.setRoot());
}
плагины/calvert-аутентификация/auth.js
export class Auth {
constructor() {
console.log('Auth: constructor()');
}
}
плагины/calvert-аутентификация/index.js
import {BaseConfig} from './baseConfig';
export function configure(frameworkConfig, configCallback) {
frameworkConfig.globalResources('./auth');
let baseConfig = frameworkConfig.container.get(BaseConfig);
if (configCallback !== undefined && typeof(configCallback) === 'function') {
configCallback(baseConfig);
}
}