我使用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
}
我的所有views
和viewmodels
都位于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
导入,但它会完美地编译和转换。
所以我的问题是如何将自定义组件包含在捆绑包中?
答案 0 :(得分:1)
问题不包括aurelia-framework
中的aurelia-router
和package.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)。