Я пытаюсь переместить один из моих пользовательских элементов в плагин, чтобы я мог повторно использовать его в проектах.Невозможно использовать плагин Aurelia
Я взглянул на skeleton plugin и заметил, что у него есть src/index.js
, который возвращает конфигурацию со всеми пользовательскими элементами, определенными как globalResources
.
Так что я попробовал то же самое, и я в основном имеют:
SRC/index.js
export function configure (config) {
config.globalResources([
'./google-map',
'./google-map-location-picker',
'./google-map-autocomplete'
]);
}
И тогда я каждый один из моих пользовательских элементов рядом с index.js
, например:
Google-map.js
import {inject, bindable, bindingMode, inlineView} from 'aurelia-framework';
@inlineView(`
<template>
<div class="google-map"></div>
</template>
`)
@inject(Element)
export class GoogleMapCustomElement {
// All the Custom Element code here
}
Я также создал базовый сценарий НПМ, который работает столпотворение на код и прилипает его в dist/
:
"main": "dist/index.js",
"babel": {
"sourceMap": true,
"moduleIds": false,
"comments": false,
"compact": false,
"code": true,
"presets": [ "es2015-loose", "stage-1"],
"plugins": [
"syntax-flow",
"transform-decorators-legacy",
"transform-flow-strip-types"
]
},
"scripts": {
"build": "babel src -d dist"
},
ТВН Я не совсем уверен, что это все правильно, но я взял некоторые из них из плагина скелета, и, похоже, он работает нормально.
Во всяком случае, проблема у меня в том, что после установки плагина (npm install --save-dev powerbuoy/AureliaGoogleMaps
), добавьте его к моему aurelia.json
в build.bundles[vendor-bundle.js].dependencies
и сказать Aurelia, чтобы использовать его в main.js
(.use.plugin('aurelia-google-maps')
) я получаю:
GET http://localhost:9000/node_modules/aurelia-google-maps/dist/index/google-map.js
(404)
Так что мой вопрос в том, где он получает часть dist/index/
? Я настраиваю свой globalResources
в index.js
, но нигде не говорит, что у меня есть папка index
.
Что я делаю неправильно?
Вопрос с бонусом: Каков минимальный размер, необходимый для перевода моего ES6-кода, чтобы другие могли его использовать? Является ли конфигурация моего бабуля правильной?
Как вы добавили его в файл aurelia.json? как «google-map», или вы указали настраиваемую конфигурацию? "Google Map" : {....}? –
Я просто добавил «aurelia-google-maps», но я также попробовал «{« name »:« aurelia-google-maps »,« path »:« ../node_modules/aurelia-google-maps/dist/index «}'. Оба дают одинаковый результат. Я действительно верю, что «aurelia-google-maps» отлично работает (поскольку мое основное свойство указывает на index.js) – powerbuoy
Я не уверен в * почему * он не работает, но проблема может иметь какое-то отношение к тому, как Aurelia перенаправляет вас на страницу, которая может быть определена файлом с именем 'about.js', но URL-адрес говорит« localhost: 9000/about'. В этом случае, если алгоритм, делающий запрос 'GET' от' index.js', запрашивает сервер, «Где я сейчас?» и сервер дает ему 'dist/index', тогда'./google-map', конечно, направляется на 'dist/index/google-map'. Поэтому вопрос заключается в том, почему этот алгоритм получает 'dist/index' вместо' dist/index.js'. Это единственный способ, который имеет смысл для меня. –