2015-09-08 17 views
13

Używam jspm 0.16.2.Czy mogę używać JSPM bez transpilera?

Używam tego test project

Kiedy ustawić Transpiler niepodważalna: transpiler: "none"

pojawia się błąd XHR error (404 Not Found) loading http://localhost:53404/none.js

Jeżeli ustawić transpiler do 'testu' to daje ten sam błąd, z wyjątkiem tego, że szuka test.js

Czy jest to błąd z jspm?

Nie chciałem używać transpilatora, ale używam system.js do ładowania modułów AMD.

Po usunięciu opcji transpiler z pliku config.js, próbuje załadować Traceur.

Nie chcę, aby Transpiler działał w środowisku wykonawczym.

Odpowiedz

8

Nie jest jasne, co próbujesz zrobić. Jeśli używasz funkcji ES2015 (np. Moduły ES2015, let itd.), Potrzebujesz transpilatora. Jeśli napiszesz swój kod bez funkcji ES2015, to nie załadujesz żadnego transpilera. Możesz to sprawdzić, umieszczając kod ES5 w main.js i sprawdzając zakładkę Sieć swojego debuggera. browser.js nie zostanie pobrany.

Łańcuch, który wprowadzasz dla transpiler w System.config jest dosłownie samym plikiem transpilatora. W przypadku "babel", jest odwzorowana na npm:[email protected] (od map dziedzinie), które w połączeniu z polem path dotyczy jspm_packages/npm/[email protected], a następnie w tym katalogu, plik .jspm.json punktów punkt wejścia browser.js, który jest po stronie klienta transpiler się złożyć .

Cokolwiek ciąg ustawić transpiler się, jspm powoła System się wskazywać na to (ścieżka ma być tylko baseURL jeśli nie zostały odwzorowane go) i sprowadzić go. Oczywiście nie ma tam dowolnego ciągu znaków, takiego jak none lub test. Domyślnie, jeśli niczego nie określisz, jak zauważyłeś, jest traceur.

Masz opcję transpozycji strony serwera wykonując jspm bundle, jeśli chcesz uniknąć transaktywowania po stronie klienta.

Dla kodu, który używa tylko ES5 i AMD, bez transpozycji, sprawdź gałąź wymienionego powyżej repozytorium no-transpile. Uwaga: browser.js nie jest pobierany, mimo że transpile nadal jest ustawiony na "babel".

+0

+1 w celu uzyskania szczegółowych informacji. Myślę, że teraz rozumiem, jaka jest sytuacja. Myślę, że wprowadzam w błąd, że możesz odpowiedzieć "Nie" na pytanie Transpilera podczas uruchamiania jspm init, i wstawi "none" w pliku config.js do transpilatora. –

+1

Tak, ale jeśli twój kod ma funkcje ES2015, to 'System' * * spróbuje to przetransformować - z transponderem' none'. Bezpieczną rzeczą, jeśli chcesz się upewnić, że nie ma transpozycji, jest ustawienie tego pola na dowolny niepoprawny ciąg (na przykład 'none'), a następnie napisanie kodu za pomocą prostego ES5. W ten sposób pominiesz, jeśli jakikolwiek kod ES2015 zakradnie się, np. przez zaimportowany moduł. – caasjj

+0

OK, teraz to rozumiem. Dziękuję bardzo. –

Powiązane problemy