Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scully: Angular SSG

puku0x
August 19, 2020

Scully: Angular SSG

puku0x

August 19, 2020
Tweet

More Decks by puku0x

Other Decks in Technology

Transcript

  1. @puku0x 仕組み • Angularアプリケーションを Puppeteer で実行 ◦ HttpClientなどの通信の完了を確認して出力 ◦ PLATFORM_IDは常にブラウザー

    • 実行時はプリレンダされたHTML → 読み込み完了で Angularアプリケーションに置き換わる 7
  2. $ ng new my-app --routing $ cd my-app $ ng

    add @scullyio/init インストール 8
  3. $ ng build --prod $ npm run scully $ npm

    run scully:serve Angular distribution server started on “http://localhost:1864/” Scully static server started on “http://localhost:1668/” 実行 10
  4. import { ScullyConfig } from '@scullyio/scully'; export const config: ScullyConfig

    = { … defaultPostRenderers: ['seoHrefOptimise'], }; リンクに末尾スラッシュ追加 13
  5. $ npm i -D scully-plugin-disable-angular $ ng build --prod --statsJson

    Angular無効化 14 import { ScullyConfig, setPluginConfig } from '@scullyio/scully'; import { DisableAngular } from 'scully-plugin-disable-angular'; setPluginConfig(DisableAngular, 'render', { removeState: true }); export const config: ScullyConfig = { defaultPostRenderers: [DisableAngular], };
  6. @puku0x Scullyの今後 • ドキュメント更新 • 公式プラグイン拡充 ◦ Google Analytics、LogRocket、Sentry ◦

    scully-plugin-disable-angularと似たプラグインも? • Angular以外も対応予定 17