ACTUALIZACIÓN: diciembre de 2018 (ver respuesta 'Aniket')
Con Angular CLI 6 necesita usar constructores ya que ng eject está en desuso y pronto se eliminará en 8.0
ACTUALIZACIÓN: junio de 2018: Angular 6 no admite la expulsión de ng **
ACTUALIZACIÓN: febrero de 2017: use ng eject
ACTUALIZACIÓN: noviembre de 2016: angular-cli ahora solo usa webpack. Solo necesita instalar normalmente con npm install -g angular-cli. "Cambiamos el sistema de compilación entre beta.10 y beta.14, de SystemJS a Webpack", pero en realidad uso angular-cli solo para la estructura y las carpetas y luego uso la configuración de webpack manualmente
He instalado cli angular con esto:
npm install -g angular-cli@webpack
Cuando trabajé con angular1 y el paquete web, solía modificar el archivo "webpack.config.js" para ejecutar todas las tareas y complementos, pero no veo en este proyecto creado con angular-cli quién funciona. ¿Es magia?
Veo que Webpack funciona cuando lo hago:
ng serve
"Version: webpack 2.1.0-beta.18"
pero no entiendo la forma en que funciona la configuración angular-cli ...
fuente
ng eject
Respuestas:
Con Angular CLI 6, debe usar constructores ya que ng eject está en desuso y pronto se eliminará en 8.0. Eso es lo que dice cuando intento hacer una expulsión de ng
Puede usar el paquete de constructores angulares ( https://github.com/meltedspark/angular-builders ) para proporcionar su configuración de paquete web personalizado.
He intentado resumir todo en una sola publicación de blog en mi blog: cómo personalizar la configuración de compilación con la configuración personalizada de webpack en Angular CLI 6
pero esencialmente agrega las siguientes dependencias:
En angular.json realice los siguientes cambios:
Observe el cambio en el generador y la nueva opción customWebpackConfig. También cambiar
Observe el cambio en el generador nuevamente para el objetivo del servicio. Publique estos cambios; puede crear un archivo llamado custom-webpack.config.js en su mismo directorio raíz y agregar allí la configuración de su paquete web.
Sin embargo, a diferencia de ng expulsar configuración de proporcionada aquí, se combinará con la configuración predeterminada, así que solo agregue las cosas que desea editar / agregar.
fuente
ng serve
solo sale después de 5 segundos sin salida. Mi proyecto utiliza angular cli 7 y núcleo angular 5.scripts
propiedad package.json ?@angular-builders/dev-server:generic
ha quedado en desuso. Use en su@angular-builders/custom-webpack:dev-server
lugar". ¿Podría actualizar esta respuesta para reflejar eso?Hay una buena manera de expulsar webpack.config.js de angular-cli . Solo corre:
Esto generará webpack.config.js en la carpeta raíz de su proyecto, y puede configurarlo de la manera que desee. La desventaja de esto es que los scripts de compilación / inicio en su package.json serán reemplazados por los nuevos comandos y en lugar de
tendrías que hacer algo como
Este método debería funcionar en todas las versiones recientes de angular-cli (personalmente probé algunas, siendo la más antigua 1.0.0-beta.21 y la última 1.0.0-beta.32.3 )
fuente
Según este problema , fue una decisión de diseño no permitir a los usuarios modificar la configuración de Webpack para reducir la curva de aprendizaje.
Teniendo en cuenta la cantidad de configuraciones útiles en Webpack, este es un gran inconveniente.
No recomendaría usarlo
angular-cli
para aplicaciones de producción, ya que es muy obstinado.fuente
La configuración del paquete web de la CLI ahora se puede expulsar. Verifique la respuesta de Anton Nikiforov .
anticuado:
Puedes hackear la plantilla de configuración en
angular-cli/addon/ng2/models
. No hay una forma oficial de modificar la configuración del paquete web a partir de ahora.Hay un problema cerrado de "wont-fix" en github sobre esto: https://github.com/angular/angular-cli/issues/1656
fuente
Lo que estoy pensando es que tener webpack sería fácil cuando se publique la producción.
FYI: https://github.com/Piusha/ngx-lazyloading
fuente
Según la sugerencia de
ng eject
usted puede usarngx-build-plus
fuente