2017-01-17 11 views
20

Chciałbym użyć narzędzia kątowego-cli do zbudowania aplikacji, która łączy mój kod aplikacji, ale nie obejmuje struktury Angular2 lub innych dużych zewnętrznych bibliotek JavaScript w dołączonym kodzie. Chciałbym załadować te biblioteki z CDN podczas ładowania strony. Czy jest jakiś sposób na zrobienie tego?Załaduj biblioteki zewnętrzne z CDN za pomocą funkcji kątowej

Czy istnieje sposób, aby to zrobić, zachowując korzyści wynikające z lokalnego kompilacji, w którym wczytują się tylko te elementy ramy Angular2, których używam?

Widziałem to pytanie, ale to było dla SystemJS i nie sądzę, że odnosi się do skośnych CLI: How to load angular2 using CDN and SystemJS

+0

Cześć Chris - Zastanawiałem się, czy odpowiedź poniżej pomogła ci? Jeśli tak, czy nie, możesz zaznaczyć to jako zaakceptowaną odpowiedź i przyznać nagrodę. To da ci punkty repo i pomoże innym w przyszłości. –

+3

To jest takie smutne, że w 2017 roku mówimy o tym, jak używać CDN dla najbardziej znanych frameworków javascript google. I nawet nie mamy na to odpowiedzi. To jest po prostu smutne. – Milad

+0

@BenCameron: Nagroda była ode mnie. Przyznałem to odpowiedzi, która najlepiej odpowiedziała na pytanie.Inne odpowiedzi również są świetne, ale nie do końca, aby załadować * zewnętrzne * biblioteki z CDN –

Odpowiedz

7

Po prostu należy dodać odpowiednie znaczniki <script src=""> wskazujące na numer CDN do pliku index.html. Pamiętaj, aby usunąć pliki .js z numeru angular-cli.json, aby nie były dostarczane z aplikacją.

Obecnie nie można tego zrobić dla samych plików Angular 2 js, są one automatycznie pakowane w aplikację. Mimo że najnowsze aktualizacje umożliwiają serwerom i przeglądarkom buforowanie plików dostawców, więc nie są one ponownie pobierane na wszystkich wizjach aplikacji, ale tylko wtedy, gdy zmienią się wartości mieszania.

+0

Czy istnieje sposób na zachowanie informacji o typie? Mam na przykład typy jQuery w devDependencies, ale nie mogłem znaleźć sposobu na "zaimportowanie" go i nadal mam ng build (z aot), aby przestać narzekać. czego mi brakuje? :) –

4

dodałbym całą swoją aplikację do CDN takie jak Akamai. Na przykład (w zależności od tego, jak aplikacja jest zorganizowany) można buforować pliki, takie jak te w poniższej liście ...

  • index.html
  • przedmiot
  • application.css aplikacja
  • JavaScript powinny
  • templates.js
  • vendors.css
  • vendors.js

Zapewni to jeszcze lepszą wydajność niż tylko buforowanie ramowych plików struktury w CDN.

3

Podczas tworzenia aplikacji z kątowe, w wersji 2 lub wyższej, wykorzystuje system kompilacji, który zawiera tylko części kątowej używanej platformy. Szablony można kompilować w czasie kompilacji, co pozwala procesowi kompilacji usunąć kompilator szablonów z dołączonego ładunku. W końcu proces budowania powoduje drżenie drzewa za pomocą statycznej analizy twojego kodu, co dodatkowo usuwa z pakietu danych nieużywane fragmenty platformy.

Jeśli dostarczasz kątowy z CDN, to musi to być zlew kuchenny, cała platforma. Byłoby to ogromne i szkodliwe dla twojej aplikacji.

Jesteś o wiele lepiej, dzięki czemu kątowe-cli zepnij części platformy, które potrzebujesz. Wraz z ulepszaniem wtyczki WebHack do powiększania drzew twoje pakiety będą się zmniejszać.

Powiązane problemy