2017-03-04 85 views
0

我尝试biuld没有完整的文档的旁边奥里利亚插件,我读太多的doc和插件IM构建一个简单的插件,它包含一个简单的日期选择器:在奥里利亚创建功能

首先我创建以下文件系统:

./Aurelia 
    -JbPlugin 
     -JbDirectives 
      +index.js 
      +jb-calendar.js 

和main.js文件我功能添加它象下面这样:

aurelia.use 
 
     .standardConfiguration() 
 
     .developmentLogging() 
 
     .feature('jb-directive');

后,在插件的index.js文件我有:

import {ViewLocator , inject} from 'aurelia-framework'; 
 
import {JbCalendar} from './jb-calendar'; 
 

 
export function configure(config) { 
 
    config.globalResources([ 
 
      './jb-calendar'] 
 
    ); 
 
} 
 

 
export { 
 
    JbCalendar, 
 
};

在JB-calendar.js

import {inject, bindable, bindingMode, BindingEngine} from 'aurelia-framework'; 
 

 
@inject(BindingEngine) 
 
export class JbCalendar { 
 
}

在我的config.js文件:

System.config({ 
 
    baseURL: "/", 
 
    defaultJSExtensions: true, 
 
    transpiler: "babel", 
 
    babelOptions: { 
 
    "optional": [ 
 
     "runtime", 
 
     "optimisation.modules.system", 
 
     "es7.decorators", 
 
     "es7.classProperties" 
 
    ] 
 
    }, 
 
    paths: { 
 
    "github:*": "jspm_packages/github/*", 
 
    "npm:*": "jspm_packages/npm/*", 
 
    "jb-plugin:*":"Aurelia/JbPlugin/*" 
 
    }, 
 
    stage: 0, 
 

 
    map: { 
 
    "jb-directive": "jb-plugin:jb-directive", 
 
    "aurelia-animator-css": "npm:[email protected]", 
 
    "aurelia-bootstrapper": "npm:[email protected]", 
 
    "aurelia-fetch-client": "npm:[email protected]", 
 
    "aurelia-framework": "npm:[email protected]", 
 
    "aurelia-http-client": "npm:[email protected]", 
 
    "aurelia-pal-browser": "npm:[email protected]", 
 
    "aurelia-router": "npm:[email protected]", 
 
    "babel": "npm:[email protected]", 
 
    "babel-polyfill": "npm:[email protected]", 
 
    "babel-runtime": "npm:[email protected]", 
 
    "core-js": "npm:[email protected]", 
 
    "jquery": "npm:[email protected]", 
 
    "github:jspm/[email protected]": { 
 
     "assert": "npm:[email protected]" 
 
    }, 
 
    "github:jspm/[email protected]": { 
 
     "buffer": "npm:[email protected]" 
 
    }, 
 
    "github:jspm/[email protected]": { 
 
     "path-browserify": "npm:[email protected]" 
 
    }, 
 
    "github:jspm/[email protected]": { 
 
     "process": "npm:[email protected]" 
 
    }, 
 
    "github:jspm/[email protected]": { 
 
     "util": "npm:[email protected]" 
 
    }, 
 
    "github:jspm/[email protected]": { 
 
     "vm-browserify": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "assert": "github:jspm/[email protected]", 
 
     "buffer": "github:jspm/[email protected]", 
 
     "process": "github:jspm/[email protected]", 
 
     "util": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-task-queue": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-event-aggregator": "npm:[email protected]", 
 
     "aurelia-framework": "npm:[email protected]", 
 
     "aurelia-history": "npm:[email protected]", 
 
     "aurelia-history-browser": "npm:[email protected]", 
 
     "aurelia-loader-default": "npm:[email protected]", 
 
     "aurelia-logging-console": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-pal-browser": "npm:[email protected]", 
 
     "aurelia-polyfills": "npm:[email protected]", 
 
     "aurelia-router": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]", 
 
     "aurelia-templating-binding": "npm:[email protected]", 
 
     "aurelia-templating-resources": "npm:[email protected]", 
 
     "aurelia-templating-router": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-logging": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-binding": "npm:[email protected]", 
 
     "aurelia-dependency-injection": "npm:[email protected]", 
 
     "aurelia-loader": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]", 
 
     "aurelia-task-queue": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-history": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-loader": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:aurelia-m[email protected]", 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-logging": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-path": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-dependency-injection": "npm:[email protected]", 
 
     "aurelia-event-aggregator": "npm:[email protected]", 
 
     "aurelia-history": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]", 
 
     "aurelia-route-recognizer": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-pal": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-binding": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-binding": "npm:[email protected]", 
 
     "aurelia-dependency-injection": "npm:[email protected]", 
 
     "aurelia-loader": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]", 
 
     "aurelia-task-queue": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-binding": "npm:[email protected]", 
 
     "aurelia-dependency-injection": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]", 
 
     "aurelia-router": "npm:[email protected]", 
 
     "aurelia-templating": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "aurelia-binding": "npm:[email protected]", 
 
     "aurelia-dependency-injection": "npm:[email protected]", 
 
     "aurelia-loader": "npm:[email protected]", 
 
     "aurelia-logging": "npm:[email protected]", 
 
     "aurelia-metadata": "npm:[email protected]", 
 
     "aurelia-pal": "npm:[email protected]", 
 
     "aurelia-path": "npm:[email protected]", 
 
     "aurelia-task-queue": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "babel-runtime": "npm:[email protected]", 
 
     "core-js": "npm:[email protected]", 
 
     "fs": "github:jspm/[email protected]", 
 
     "path": "github:jspm/[email protected]", 
 
     "process": "github:jspm/[email protected]", 
 
     "regenerator-runtime": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "process": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "core-js": "npm:[email protected]", 
 
     "regenerator-runtime": "npm:[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "base64-js": "npm:[email protected]", 
 
     "child_process": "github:jspm/[email protected]", 
 
     "fs": "github:jspm/[email protected]", 
 
     "ieee754": "npm:[email protected]", 
 
     "isarray": "npm:[email protected]", 
 
     "process": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:core[email protected]": { 
 
     "fs": "github:jspm/[email protected]", 
 
     "path": "github:jspm/[email protected]", 
 
     "process": "github:jspm/[email protected]", 
 
     "systemjs-json": "github:systemjs/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "fs": "github:jspm/[email protected]", 
 
     "path": "github:jspm/[email protected]", 
 
     "process": "github:jspm/[email protected]", 
 
     "systemjs-json": "github:systemjs/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "util": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "process": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "assert": "github:jspm/[email protected]", 
 
     "fs": "github:jspm/[email protected]", 
 
     "vm": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "path": "github:jspm/[email protected]", 
 
     "process": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "inherits": "npm:[email protected]", 
 
     "process": "github:jspm/[email protected]" 
 
    }, 
 
    "npm:[email protected]": { 
 
     "indexof": "npm:[email protected]" 
 
    } 
 
    } 
 
});

中的package.json文件

我有:

{ 
 
    "jspm": { 
 
    "main": "index", 
 
    "format": "amd", 
 
    "dependencies": { 
 
     "aurelia-animator-css": "npm:[email protected]^1.0.1", 
 
     "aurelia-bootstrapper": "npm:[email protected]^2.0.1", 
 
     "aurelia-fetch-client": "npm:[email protected]^1.1.0", 
 
     "aurelia-framework": "npm:[email protected]^1.0.8", 
 
     "aurelia-http-client": "npm:[email protected]^1.0.4", 
 
     "aurelia-pal-browser": "npm:[email protected]^1.1.0", 
 
     "aurelia-router": "npm:[email protected]^1.1.1", 
 
     "babel-polyfill": "npm:[email protected]^6.23.0", 
 
     "jquery": "npm:[email protected]^3.1.1", 
 
     "jb-directive": "jb-plugin:jb-directive" 
 
    }, 
 
    "devDependencies": { 
 
     "babel": "npm:[email protected]^5.8.24", 
 
     "babel-runtime": "npm:[email protected]^5.8.24", 
 
     "core-js": "npm:[email protected]^1.1.4" 
 
    } 
 
    } 
 
}

所以它没有任何错误很好地工作,并加载所有的JS,但是当我想使用像仪表板js这样的真实课程插件如下:

import {JbCalendar} from 'jb-directive'; 

它抛出一个错误对我说:

GET http://localhost:9001/Aurelia/JbPlugin/jb-directive.js 404 (Not Found) 

为什么奥里利亚航线插件像顶部犯规它soppose加载index.js文件?

编辑: 我findout我的插件是做工精细什么,我需要的只是用指令没有任何同类“进口”监守我在全球资源加我的指令,它可以反正在应用程序中使用,而不进口

回答

0

试试这个

aurelia.use 
    .standardConfiguration() 
    .developmentLogging() 
    .plugin('JbPlguins/JbDirectives'); 
+0

没有问题仍然存在,它寻找JB-directive.js或jbDirective.js –

+0

GET HTTP://本地主机:9001 /奥里利亚/ JbPlugin/jbDirective.js 404(未找到) –

+0

他创造一个插件,而不是一个功能,所以他需要使用'plugin'功能。 –