2014-01-29 8 views
10

Ich versuche, eine Glut App zu migrieren, um die ember app-kit zu verwenden. Der Code benötigt die Bibliothek accounting.js. In der Pre-app-Kit-Version der Datei über ein Skript-Tag in index.htmlWie kann ich auf ein Bower-Paket als ES6-Modul zugreifen?

<script src="http://cdnjs.cloudflare.com/ajax/libs/accounting.js/0.3.2/accounting.min.js"></script> 

und der Zugriff in den Ansichten über den globalen Namespace

App.MoneyField= Em.TextField.extend({ 
    init: function() { 
    this._super(); 
    var value = accounting.formatMoney(this.get("money")/100, ''); 
    this.set('value', value); 
    }; 
    // other functions omitted 
}); 

im App-Kit-Version geladen wurde, ich enthalten accounting.js als eine Abhängigkeit von der Laube. In bower.json:

{ 
    "name": "ember-app-kit", 
    "dependencies": { 
    "handlebars": "~1.1.2", 
    "jquery": "~1.9.1", 
    "qunit": "~1.12.0", 
    "ember": "~1.4.0-beta.2", 
    "ember-data": "~1.0.0-beta.6", 
    "ember-resolver": "git://github.com/stefanpenner/ember-jj-abrams-resolver.git#master", 
    "ic-ajax": "~0.3.0", 
    "ember-testing-httpRespond": "~0.1.1", 
    "accounting":"~0.3.2" 
    }, 
    "resolutions": { 
    "ember": "~1.4.0-beta.2" 
    } 
} 

Wenn ich versuche, um die Anwendung zu bauen, gibt es den Fehler

W117: 'accounting' is not defined. 

Ich verstehe, warum das so ist und weiß, dass ich eine Art von import accounting from ... Erklärung brauche.

Wie importiere ich ein über Bower installiertes Paket als ES6-Modul?

+0

Ich würde "importieren Buchhaltung aus"/vendor/accounting/accounting '; '. Aber ich habe es versucht und habe den folgenden Fehler: 'Uncaught Error: Konnte Modul/Hersteller/Buchhaltung/Buchhaltung nicht finden Quelle: 'http: // localhost: 8000/vendor/loader.js: 21''. Mit requirejs würde ich ein Shim zur Konfigurationsdatei hinzufügen, leider weiß ich nicht, wie man es mit EAK macht. –

+0

Offensichtlich ist etwas in naher Zukunft kommen: http://emberjs.com/blog/2013/12/17/whats-coming-in-ember-in-2014.html Die 'ember-CLI' ist in der Lage zu machen wie er. –

+0

Ich habe ein Problem für diese Funktion erstellt: https://github.com/stefanpenner/ember-app-kit/issues/511 –

Antwort

1

Ich weiß, dass dies vor ein paar Monaten gefragt wurde, aber seit dem Ember App Kit wurde gefolgt von ember-cli, und dies bietet eine sehr direkte Mittel zum Zugriff entweder Bower oder NPM Abhängigkeiten.

Im Hinblick auf die als ES6 Module zugegriffen wird:

  • Non-AMD Vermögenswerte nicht als ES6 Modul zugegriffen werden kann, können Sie sie einfach durch den Zugriff auf globale Variable, die sie exportieren.
    • z.B. moment
  • AMD Vermögen, andererseits kann
    • z.B. durch die ES6 import Syntax aufgerufen werden import { raw as icAjaxRaw } from 'ic-ajax';

Worth auch zu erwähnen, dass Ember-cli unterstützt ein Add-On-System jetzt, was diese Dinge so einfach importieren machen sie zum package.json Ihres Projekts als Zugabe. Einige der beliebtesten Bibliotheken haben bereits ember-cli-Addons für sie. This post beschreibt, wie Sie Ihre eigenen schreiben können.

+0

Beide Links existieren nicht mehr. – shredding