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-dev
o con yarn
$ yarn add scully-plugin-disable-angular
Uso
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 scully
Limpiando 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
},
},
};