popcodeorg / popcodeorg/popcode

Main bundle should only contain libraries needed for fresh environment load

オープン
#1,292 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

performance
主要言語
JavaScript
スター
191
フォーク
143
平均マージ
4日 11時間
マージ済み PR(30日)
5

説明

The main bundle should only contain the libraries needed to load a fresh environment, logged out, with no snapshot/gist ID in the URL and nothing in local storage. Everything else should be loaded via an async import().

Specific things that I don’t think we need:

  • Firebase database: we need auth to determine login state but if you’re logged out, that should be the end of it
  • GitHub
  • Anything related to validations (we are mostly good here but I think the custom HTML validation module unintentionally pulls some of its dependencies into the main bundle)
  • The loop breaker: should be easy to load async now that compileProject() is async (and can skip it altogether if there is no JS)

We should also be deliberate about how we categorize various async bundles in the service worker configuration (e.g. I think the GitHub API should probably in a bundle classified as optional and loaded lazily)

Probably other stuff too, those are just some big ones that come to mind.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

main-bundle のエントリーポイントと service-worker の設定から始め、Firebase、GitHub、バリデーション、loop breaker の import を追跡します。新しいログアウト状態の環境では必要なライブラリだけが読み込まれ、その他の機能は非同期で読み込まれ、GitHub API などのバンドルが lazy loading 用に分類されることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
build-system, performance
issue の種類
リファクタリング
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。