Make the widget bundle at least 600 bytes smaller (gzipped) without changing behavior
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript, vite
- Lĩnh vực
- frontend, performance
Hướng nghiên cứu
Build the widget with pnpm --filter @chatcops/widget build, then run pnpm size and inspect the bundle using npx size-limit --why or source-map-explorer. Focus on markdown.ts, theme.ts, the listed dom files, i18n.ts, styles/widget.css and vite.config.ts; leave the three named files untouched. Done means at least 600 gzipped bytes saved with identical behavior, unchanged unit and browser tests passing, before and after size output in the PR, one-line reasons for changes, and a patch changeset.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The script tag bundle (packages/widget/dist/chatcops.min.js) has to stay under 14 kB gzipped, and CI checks it with pnpm size (limits in .size-limit.json). It's at about 13.5 kB today. The next two releases add a new stream parser and session handling to the widget, which will take most of what's left. This issue frees up room before that.
This is for someone who has had at least 3 PRs merged here. Shaving bytes is easy to overdo, and every change has to keep the widget working exactly the same.
What to do
- Run
pnpm --filter @chatcops/widget buildandpnpm size, then look at what's big.npx size-limit --whyor source-map-explorer on the build both work. - Find savings in
markdown.ts,theme.ts,dom/prechat-form.ts,dom/panel.ts,dom/bubble.ts,i18n.tsorstyles/widget.css. Typical wins: duplicated helpers, CSS rules nobody uses, long repeated strings, code thatvite.config.tscould minify better. - Leave
api/client.ts,widget.tsanddom/messages.tsalone. I'm rewriting those next month. - No new dependencies, no build tool change, and no behavior change. Visible text, class names, CSS custom properties and the public API stay the same.
Acceptance criteria
-
dist/chatcops.min.jsis at least 600 bytes smaller gzipped. Put thepnpm sizeoutput from before and after in the PR - Every unit test and every browser test (
pnpm e2e) passes unchanged. Changing a test to make it pass doesn't count - Each change has a one-line reason in the PR description
- Changeset for
@chatcops/widget(patch)
Want to work on this? Comment below and I'll assign it to you. Please take one issue at a time, branch off dev, and open your PR against dev with Closes #<this issue number>. Setup notes (pnpm, build before test) are in CONTRIBUTING.md.
- Ngôn ngữ chính
- TypeScript
- Star
- 13
- Fork
- 7
- Merge trung bình
- 3 giờ 41 phút
- Pull request đã merge (30 ngày)
- 155
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của codercops/chatcops
-
Document the pre-chat formCó thể đã có người làm @masyarakatai đã nhận 5 ngày trước. Đang mởdocumentation good first issue hacktoberfest widget
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
codercops/chatcops#70 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: update the providers page for openai-compatible, registerProvider and provider importsCó thể đã có người làm @prakashNalla đã nhận hôm nay. Đang mởdocumentation good first issue hacktoberfest website
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
codercops/chatcops#291 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: add a protocol reference page for custom clientsCó thể đã có người làm @kachamsiddarth đã nhận hôm nay. Đang mởdocumentation good first issue hacktoberfest website
codercops/chatcops#286 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Create @chatcops/store-cloudflare (D1, KV and a Durable Object counter)Có thể đã có người làm @bhushan4work đã nhận hôm nay. Đang mởenhancement hacktoberfest help wanted server
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
codercops/chatcops#249 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Create @chatcops/store-sqlite, a store for single-server setupsCó thể đã có người làm @srikar-naidu đã nhận hôm nay. Đang mởenhancement hacktoberfest help wanted server
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
codercops/chatcops#247 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của codercops/chatcops
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 72/100
zts212653/clowder-ai#1678 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Progressive-Victory/the-website#680 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100