Aurelia 捆绑自定义组件

Aurelia bundle custom components

我使用带有打字稿和 WebApi 的 Aurelia 创建了一个 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-frameworktypescript 文件导入,但它编译和转译完美。

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

问题是 package.json 中没有包含 aurelia-frameworkaurelia-router,生成的 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)。