Aurelia捆绑定制组件

时间:2015-09-02 14:05:16

标签: typescript aurelia aurelia-cli

我使用Aurelia创建了一个带有typescript和WebApi的SPA。我想使用aurelia-cli捆绑所有内容,以便最小化请求以提高访问性能。我有以下配置:

var aurelia = require("aurelia-cli");

var bundleConfig = {
    js: {
        "Scripts/aurelia-bundle": {
            modules: [ 
                "github:aurelia/*",
                "Components/**/*.js"
            ],
            options: {
                inject: true,
                minify: true
            }
        }
    },
    template: {
        "Scripts/aurelia-bundle": {
            pattern: "Components/**/*.html",
            options: {
                inject: true
            }
        }
    }
};

aurelia.command("bundle", bundleConfig);

一个基本的组件是:

import {bindable, inject} from "aurelia-framework";

export class Home {

    // Custom properties

    constructor() {
      // Implementation
    }

    // Other methods
}

我的所有viewsviewmodels都位于Components内。如果我从模块导入中删除"Components/**/*.js",则捆绑包完成,并生成捆绑的js文件。如果我在那里放那条线,我会收到以下错误:

info: Creating bundle ...

err  Error: ENOENT, open 'C:\Work\aurelia-framework.js'
         at Error (native) C:\Work\node_modules\jspm\node_modules\systemjs-builder\lib\builder.js:23
  throw new Error('Unhandled promise rejection.\n' + reason && reason.stack ||
        ^
Error: Error: ENOENT, open 'C:\Work\aurelia-framework.js'
    at Error (native)
    at C:\Work\node_modules\jspm\node_modules\systemjs-builder\lib\builder.js:23:9
    at Object.lib$rsvp$events$$default.trigger (C:\Work\node_modules\jspm\node_modules\rsvp\dist\rsvp.js:245:13)
    at null._onTimeout (C:\Work\node_modules\jspm\node_modules\rsvp\dist\rsvp.js:779:47)
    at Timer.listOnTimeout (timers.js:119:15)

我想问题是aurelia-cli无法从aurelia-framework文件中看到typescript导入,但它会完美地编译和转换。

所以我的问题是如何将自定义组件包含在捆绑包中?

1 个答案:

答案 0 :(得分:1)

问题不包括aurelia-framework中的aurelia-routerpackage.json,生成的config.js文件在捆绑时间不知道import {inject} from "aurelia-framework"是什么意思。所以我将这些行添加到package.json

"aurelia-framework": "github:aurelia/framework@0.15.0",
"aurelia-router": "github:aurelia/router@0.11.0"

当我运行aurelia bundle --force时,它已成功捆绑。

不幸的是,aurelia-cli will go obsolete支持其他捆绑工具(yeei)。