Nếu dùng Playwright một thời gian, kiểu gì cũng có ngày bạn nhìn lại ổ C rồi giật mình: thư mục AppData phình to bất thường.
Thủ phạm quen thuộc chính là Playwright. Mặc định nó sẽ tải toàn bộ Chromium, Firefox và WebKit về đường dẫn:
C:\Users\<username>\AppData\Local\ms-playwright
Mỗi lần nâng cấp thư viện, Playwright lại kéo thêm một dàn browser binaries mới. Vài ba dự án cùng chạy là ổ C dễ dàng "bốc hơi" từ 5 đến 10 GB. Để dứt điểm vấn đề này, bạn chỉ cần chuyển toàn bộ browser sang ổ D qua các bước dưới đây.
Cơ chế hoạt động
flowchart TD
A[Mặc định: Ổ C] -->|Chiếm 5-10 GB AppData| B[C:\Users\...\ms-playwright]
C[Biến môi trường: PLAYWRIGHT_BROWSERS_PATH] -->|Trỏ sang Ổ D| D[D:\PlaywrightBrowsers]
D --> E[chromium-xxxx]
D --> F[firefox-xxxx]
D --> G[webkit-xxxx]
Bước 1: Tạo thư mục lưu trữ trên ổ D
Tạo sẵn một thư mục riêng để chứa toàn bộ browser binaries, ví dụ:
D:\PlaywrightBrowsers
Bước 2: Thiết lập biến môi trường PLAYWRIGHT_BROWSERS_PATH
Playwright đọc biến PLAYWRIGHT_BROWSERS_PATH để ghi đè đường dẫn mặc định. Cách nhanh nhất là mở PowerShell và gán biến ở cấp độ User:
env:PLAYWRIGHT_BROWSERS_PATH="D:\PlaywrightBrowsers"
Lưu ý: Sau khi chạy lệnh, hãy khởi động lại terminal hoặc VS Code để ứng dụng nhận biến môi trường mới.
Bước 3: Tải browser về thư mục mới
Chạy lệnh cài đặt tương ứng với ngôn ngữ/framework đang dùng:
Node.js / TypeScript:
npx playwright install
.NET (C#):
pwsh bin/Debug/net8.0/playwright.ps1 install
Python:
playwright install
Sau khi tải xong, bạn sẽ thấy các thư mục phiên bản xuất hiện gọn gàng bên trong D:\PlaywrightBrowsers.
Bước 4: Xóa thư mục cũ trên ổ C
Truy cập đường dẫn cũ và xóa toàn bộ thư mục để giải phóng dung lượng:
C:\Users\<username>\AppData\Local\ms-playwright
Chạy lại test (npx playwright test hoặc dotnet test), bài test sẽ chạy mượt mà bằng browser trên ổ D.
Mẹo nhỏ: Biến giá trị 0
Nếu muốn Playwright lưu browser trực tiếp bên trong node_modules của từng project (hữu ích cho môi trường CI cô lập hoặc container), bạn có thể gán PLAYWRIGHT_BROWSERS_PATH=0. Tuy nhiên, với môi trường dev máy cá nhân hằng ngày, gom chung về ổ D vẫn là lựa chọn tiết kiệm dung lượng và tránh tải trùng lặp hiệu quả nhất.
Nhận xét