2015-06-29 7 views
9

Piszę małą bibliotekę rozszerzeń tekstu javascript. Biblioteka korzysta z webownika i jest pakowana w altanę. Po zainstalowaniu przez altankę skrypt parsera nie zostanie znaleziony (dostaję 404), ponieważ przeglądarka szuka w stosunku do katalogu głównego strony zużywającej się, a nie w stosunku do skryptu altany, z którego jest pobierana (oba skrypty są zawarte w tym samym teczka). Wygląda na to, że jest to correct behavior.Web Worker - Jak odnieść się do pliku roboczego, gdy jest zapakowany razem z Bowerem

Moje pytanie: jak należy używać pracowników w połączeniu z altanką tak, aby wymagane skrypty mogły być ładowane bez twardego kodowania komponentów/ścieżki bower?

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

Nie jestem zaznajomiony z altanami, ale jak rozumiem: można otworzyć plik '.bowerrc' json uzyskać wartość właściwości' katalog' i dołączyć do 'this.parser'. Jeśli katalog nie jest określony, musisz zakodować na twardym dysku 'bower_components', ponieważ altówka również go zakodowała. –

+1

Czy używasz czegokolwiek do budowania i pakowania skryptów (przeglądarka, itd.)? Możesz to zrobić (lub pomruk lub łykać) przenieść pliki parsera w odpowiednie miejsce w katalogu dystrybucyjnym. W jaki sposób dołączasz skrypty do strony, pod jaką ścieżką? – lemieuxster

Odpowiedz

2

Używałbym Grunta. Gulp może być nieco łatwiejszy, ponieważ może być debugowany, ale brakuje kluczowego komponentu dla twoich potrzeb. Istnieje zestaw bibliotek wiredep, plik-build i zegarek, który pozwoli Ci robić to, co chcesz zrobić. Wiredep obejrzy katalog altan i automatycznie doda pliki js dla zależności w pliku bower.json do html, a zegarek może być skonfigurowany do oglądania dowolnego typu pliku w dowolnym katalogu dla zmiany. Plik-build umożliwia skonfigurowanie szablonu i przekazanie mu zmiennych, których użyje do dynamicznej kompilacji pliku js. Następnie możesz użyć umiejętności stępienia, aby uzyskać poprawną ścieżkę aplikacji i skierować ją do pliku.

+2

Czy to nie wpływa na użytkownika końcowego, a nie na bibliotekę, która może być dystrybuowana? Zakładam, że aplikacja zużywająca będzie musiała użyć pomruku, ale niekoniecznie tej biblioteki. Wszelkie wyjaśnienia byłyby doceniane. –

+1

Konsumujący klient musiałby pracować z pomrukiem, aby to zadziałało. Powiedział, że może to być zautomatyzowane, aby pobrać konfiguracje z pliku w pliku dystrybucyjnym i wprowadzić je do pliku pomruku konsumenta. – tuckerjt07