Cargar bibliotecas externas desde CDN con angular-cli


Me gustaría usar angular-cli para crear una aplicación que agrupe el código de mi aplicación, pero no incluya el marco Angular2 u otras bibliotecas JavaScript externas grandes en el código incluido. Me gustaría cargar estas bibliotecas desde una CDN cuando se cargue la página. ¿Hay alguna manera de hacer esto?

Además, ¿hay alguna manera de hacer esto mientras se preservan los beneficios de una compilación local donde solo se cargan las partes del framework Angular2 que estoy usando?

Vi esta pregunta, pero fue para SystemJS y no creo que se aplique a Angular-cli: Cómo cargar angular2 usando CDN y SystemJS

Author: Cœur, 2017-01-17

3 answers

Simplemente necesita agregar las etiquetas <script src=""> apropiadas que apuntan a la CDN al archivo index.html. Recuerde quitar el .archivos js de angular-cli.json para que no se incluyan en la aplicación.

Actualmente, no puede hacer eso para los archivos js de Angular 2, se incluyen automáticamente con su aplicación. Aunque las últimas actualizaciones permiten a los servidores web y navegadores almacenar en caché los archivos del proveedor, por lo que no se vuelven a descargar en cada visita a su aplicación, sino solo cuando cambia el hash.

 11
Author: Alexander Ciesielski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-30 09:09:36

Añadiría toda su aplicación a una CDN como Akamai. Por ejemplo (dependiendo de cómo esté estructurada su aplicación), puede almacenar archivos en caché como los de la siguiente lista...

  • index.html
  • List item
  • solicitud.css
  • solicitud.js
  • plantillas.js
  • vendedores.css
  • vendedores.js

Esto daría un rendimiento aún mejor que simplemente almacenar en caché los archivos de marco Angular en la CDN.

 4
Author: Ben Cameron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-30 09:02:19

Al crear una aplicación con Angular, versión 2 o superior, utiliza un sistema de compilación que solo incluye las partes de la plataforma Angular que utiliza. Las plantillas se pueden compilar en el momento de la compilación, lo que permite que el proceso de compilación elimine el compilador de plantillas de la carga útil incluida. Finalmente, el proceso de compilación hace temblores de árbol con la ayuda del análisis estático de su código, lo que elimina aún más del paquete de carga útil partes no utilizadas de la plataforma.

Si proporciona Angular desde un CDN, tendría que ser el fregadero de la cocina, toda la plataforma. Esto sería enorme y un perjuicio para su aplicación.

Es mucho mejor permitir que angular-cli bundle las partes de la plataforma que necesita. A medida que el plugin Webpack treeshaking mejora los tamaños de tus paquetes se harán más pequeños.

 4
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-03 08:41:46