Complemento disableAngular
Visión General
Este complemento postRenderer para Scully remueve los archivos estáticos que inician la aplicación Angular.
Opcionalmente puede remover el estado la transferencia dinámica desde el HTML.
Si utilizas Angular únicamente para compilar una web estática / informal con un extra de funcionalidad podría excesivo seguir utilizando Angular en la interfaz.
Desabilitar Angular en el frontend aumentará la velocidad de carga mucho más!
Instalación
Para instalar la librería utiliza npm:
$ npm install scully-plugin-disable-angular --save-devo con yarn
$ yarn add scully-plugin-disable-angularUso
Importala y agrega el complemento al defaultPostRenderers para ejecutarlo sobre todas las páginas renderizadas, o puedes usar postRenderers en la configuración de una ruta para ejecutarla sobre una ruta expecífica:
Importante: la implementación actual de Scully proporciona una opción postRenderers al nivel de rutas, esto ignorará la configuración de defaultPostRenderers en la configuración general.
Para más información visita: https://github.com/scullyio/scully/issues/595
const { RouteTypes } = require('@scullyio/scully');
const { DisableAngular } = require('scully-plugin-disable-angular');
const postRenderers = [DisableAngular];
exports.config = {
projectRoot: './src/app',
defaultPostRenderers: postRenderers, // for all routes
routes: {
'/blog/:slug': {
type: RouteTypes.contentFolder,
slug: {
folder: './blog',
},
postRenderers: postRenderers, // per route config
},
},
};Ahora puedes compilar tu aplicación con la opción --stats-json como el complemento necessita para identificar qué archivos estáticos tiene que compilar la aplicación
Luego, sólo ejecute el comando de Scully.
npm run build -- --prod --stats-json
npx scullyLimpiando datos dinámicos
cuando desabilita Angular en las páginas pre-renderizadas no hay motivo para mantener el estado dinámico serializado en el HTML. Para esta opción existe la configuración del complemento removeState que quitará estos estados del HTML.
const { RouteTypes, setPluginConfig } = require('@scullyio/scully');
const { DisableAngular } = require('scully-plugin-disable-angular');
const postRenderers = [DisableAngular];
setPluginConfig(DisableAngular, 'render', {
removeState: true,
});
exports.config = {
projectRoot: './src/app',
defaultPostRenderers: postRenderers, // for all routes
routes: {
'/blog/:slug': {
type: RouteTypes.contentFolder,
slug: {
folder: './blog',
},
postRenderers: postRenderers, // per route config
},
},
};