我试图将我的自定义元素之一移动到插件中,以便可以跨项目重新使用它。无法使用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
中的每一个,例如:
谷歌,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/
基本NPM脚本:
"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"
},
TBH我不能完全肯定这是正确的,但我把它的一些从骨架插件,它似乎运行良好。
无论如何,我遇到的问题是,我安装的插件(npm install --save-dev powerbuoy/AureliaGoogleMaps
)后,在build.bundles[vendor-bundle.js].dependencies
它添加到我的aurelia.json
告诉奥里利亚在main.js
使用它(.use.plugin('aurelia-google-maps')
)我得到:
GET http://localhost:9000/node_modules/aurelia-google-maps/dist/index/google-map.js
( 404)
所以我的问题是,它从哪里得到dist/index/
部分?我在index.js
中配置我的globalResources
,但是没有任何地方说我有一个index
文件夹。
我在做什么错?
奖励问题:为了让其他人可以使用ES6插件代码,我需要什么最低限度的费用?我的babel配置看起来是否正确?
你是如何将它添加到aurelia.json文件的?就像“谷歌地图”一样,还是您指定了自定义配置? “谷歌地图” : {....}? –
我刚刚添加了“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'。在这种情况下,如果从“index.js”发出GET请求的算法询问服务器,“我现在在哪里?”并且服务器给它'dist/index',那么'。/ google-map'当然会指向'dist/index/google-map'。所以问题在于为什么这个算法被送入'dist/index'而不是'dist/index.js'。这是我认识的唯一方法。 –