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
}
我所有的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
文件导入,但它编译和转译完美。
所以我的问题是如何将我的自定义组件包含到包中?
问题是 package.json
中没有包含 aurelia-framework
和 aurelia-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)。
我使用带有打字稿和 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
}
我所有的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
文件导入,但它编译和转译完美。
所以我的问题是如何将我的自定义组件包含到包中?
问题是 package.json
中没有包含 aurelia-framework
和 aurelia-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)。