Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Make the widget bundle at least 600 bytes smaller (gzipped) without changing behavior

Đã đóng
#235 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@Saifjafri212213 đang làm issue này rồi.

Từ ngày 21/10/2026.

  • #292 của @Saifjafri212213 — đã merge

Đá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ả

enhancement hacktoberfest help wanted widget

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 build and pnpm size, then look at what's big. npx size-limit --why or 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.ts or styles/widget.css. Typical wins: duplicated helpers, CSS rules nobody uses, long repeated strings, code that vite.config.ts could minify better.
  • Leave api/client.ts, widget.ts and dom/messages.ts alone. 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.js is at least 600 bytes smaller gzipped. Put the pnpm size output 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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của codercops/chatcops

Tất cả issue của codercops/chatcops

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.