2015-06-29 5 views
9

verpackt ist Ich schreibe eine kleine JavaScript-Text-Erweiterungsbibliothek. Die Bibliothek verwendet einen Web-Arbeiter und ist mit Laube verpackt. Bei der Installation über bower wird das Parser-Skript nicht gefunden (ich bekomme einen 404), weil der Browser relativ zum root der konsumierenden Seite aussieht und nicht relativ zum bower-Skript, von dem es konsumiert wird (beide Skripte sind im selben enthalten) Mappe). Dies scheint die correct behavior zu sein.Web Worker - So verweisen Sie auf die Worker-Datei, wenn diese mit Bower

Meine Frage: Wie sollten Arbeiter in Kombination mit Bower verwendet werden, so dass die benötigten Skripte geladen werden können, ohne bower_components/path zu codieren?

function Expander(args) { 
    ... 
    this.parser = 'parser.js'; 
    this.worker = new Worker(this.parser); 
    ... 
} 
+2

Ich bin nicht vertraut mit Bower, aber wie ich es verstehe: Sie können öffnen. 'Bowerrc' JSON-Datei erhalten Wert von' Verzeichnis' -Eigenschaft und an 'this.Parser' anhängen. Wenn das Verzeichnis nicht angegeben ist, müssen Sie 'bower_components' hardcodieren, da Bower es auch fest codiert. –

+1

Verwenden Sie irgendetwas, um Ihre Skripte zu erstellen und zu verpacken (browserify, etc)? Sie könnten die Parserdateien (oder grunzen oder schlucken) an die richtige Stelle in Ihrem Distributionsverzeichnis verschieben. Wie fügen Sie Skripte auf der Seite ein, unter welchem ​​Pfad? – lemieuxster

Antwort

2

Ich würde Grunt verwenden. Gulp könnte etwas einfacher sein, da es debuggt werden kann, aber es fehlt eine Schlüsselkomponente für Ihre Bedürfnisse. Es gibt eine Reihe von Bibliotheken wiredep, build-file und watch, die es Ihnen ermöglichen, das zu tun, was Sie tun möchten. Wiredep überwacht das bower-Verzeichnis und fügt automatisch die js-Dateien für die Abhängigkeiten in bower.json in den HTML-Code ein und Watch kann so konfiguriert werden, dass jeder Dateityp in einem beliebigen Verzeichnis zur Änderung angezeigt wird. Mit Build-Datei können Sie eine Vorlage konfigurieren und Variablen übergeben, mit denen eine js-Datei dynamisch erstellt wird. Sie können dann die Fähigkeiten von grunt verwenden, um den richtigen Anwendungspfad zu erhalten und auf Ihre Datei zu zeigen.

+2

Betrifft dies nicht den Endbenutzer und nicht die verteilbare Bibliothek? Ich würde annehmen, dass die verbrauchende Anwendung grunzen müsste, aber nicht unbedingt diese Bibliothek. Jede Klärung wäre wünschenswert –

+1

Der konsumierende Klient würde laufen müssen, damit das funktioniert. Das heißt, es könnte automatisiert werden, um die Konfigurationen aus einer Datei in Ihrem distributable zu ziehen und sie in die grunt-Datei des Verbrauchers zu injizieren. – tuckerjt07

Verwandte Themen