2015-09-02 1 views
0

J'ai créé un SPA en utilisant Aurelia avec tapuscrit et WebApi. Je veux regrouper tout en utilisant aurelia-cli afin de minimiser la demande afin d'améliorer les performances d'accès. J'ai la configuration suivante:Composants personnalisés du bundle Aurelia

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); 

Un componenet de base serait:

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

export class Home { 

    // Custom properties 

    constructor() { 
     // Implementation 
    } 

    // Other methods 
} 

Tous mes views et viewmodels sont situés à l'intérieur du Components. Si je supprime "Components/**/*.js" des importations de module, l'ensemble se termine et il génère le fichier js fourni. Si je laisse cette ligne là, je reçois l'erreur suivante:

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) 

Je suppose que le problème est que le aurelia-cli ne peut pas voir aurelia-framework importer à partir du fichier typescript, mais il compile et transpiles parfaitement.

Donc, ma question est comment puis-je inclure mes composants personnalisés dans le faisceau?

+0

peut-être [this] (http://blog.durandal.io/2015/06/23/bundling-an-aurelia-application/#importantnoteswhenbundlingjs) –

+0

Ce n'est pas un problème. J'ai essayé de mettre des fichiers 'typescript' vides dans les sous-répertoires dans le dossier' Components' et la commande bundle fonctionne parfaitement –

Répondre

1

Le problème était pas savoir y compris aurelia-framework et aurelia-router dans le package.json et le fichier config.js résultant généré n'a pas au moment de ce paquet import {inject} from "aurelia-framework" voulait dire. J'ai donc ajouté ces lignes au package.json:

"aurelia-framework": "github:aurelia/[email protected]", 
"aurelia-router": "github:aurelia/[email protected]" 

et quand je courais aurelia bundle --force il empaqueté avec succès.

Malheureusement, aurelia-cliwill go obsolete en faveur d'un autre outil de regroupement (yeei).