2017-11-06 40 views
5

Mam zainstalowaną najnowszą wersję angular-cli i stworzyłem zupełnie nowy projekt (ng new my-app). Stwarza to zawsze stylowe "Welcome to App" z logo Angular i linkami do Tour of Heroes, CLI Documentation i Angular blog. Mogę to udostępnić i uzyskać do niego dostęp lokalnie na moim komputerze z systemem Windows przy użyciu przeglądarki Chrome i Firefox.Domyślny projekt Angular-CLI nie działa w Safari - tryb ścisły sprawcy?

To dziwne, gdy próbuję uzyskać dostęp do tej samej aplikacji hostowanej lokalnie przez Browserstack. Kiedy uderzę z komputera Mac z Safari 11, wszystko działa zgodnie z oczekiwaniami.

Jednakże, gdy próbuję uzyskać dostęp przez urządzenie Mac (na przykład iPad) z Safari 10+, aplikacja nie zostanie załadowana i pojawi się komunikat o błędzie: "SyntaxError: Niespodziewane słowo kluczowe" const ". obsługiwane w trybie ścisłym ". Komunikat o błędzie jest związany z lokalizacją w moim vendor.bundle.js (w eval).

Wygląda na to, że starsze wersje Safari nie grają ładnie z const, gdy włączony jest tryb ścisły. Ale mam nadzieję, że istnieje obejście.

Jak radzą sobie z tym inni? Nie jestem ekspertem od kątów, więc jeśli istnieje oczywiste rozwiązanie, przepraszam, że go nie widziałem.

Każda pomoc będzie mile widziana.

Odpowiedz

4

Mam ten sam problem. Wydaje się, że problem w webpack-dev-server (używany pod maską przez @ kątowe/cli), który używa funkcji ES6 i nie jest transponowany.

Jest to problem tylko w starszych wersjach Safari, ale aktualizacja Safari nie jest rozwiązaniem, jeśli chcesz przetestować na starszych wersjach Safari.

tymczasowe obejście problemu jest użycie starszą wersję dla webpack-dev-server instalując go i skopiowanie go ręcznie do lokalny @ katalog kątowe/cli:

yarn add [email protected] --dev 
cp -R ./node_modules/webpack-dev-server ./node_modules/@angular/cli/node_modules/ 
./node_modules/.bin/ng serve 
+0

Interesujące! Czy możesz wyjaśnić, co robi obejście? –

+0

Dzięki Dirk! Jeszcze więcej smaku: https://github.com/webpack/webpack-dev-server/issues/1105 – STH

1

Cechy ES6 z nowszych wersjach przyczyny serwerze dev to, ale w szczególności funkcja przeładowywania na żywo.

Po przejściu przez flagę --no-live-reload będziesz mógł testować na starszych urządzeniach bez konieczności obniżania czegokolwiek.

Na przykład: ng serve --no-live-reload