Sử dụng WSL cơ bản
Tại sao nên sử dụng WSL?
WSL (Windows Subsystem for Linux) cho phép chạy môi trường Linux trực tiếp trên Windows, mang lại trải nghiệm development tốt hơn so với môi trường Windows thuần.
So sánh: WSL vs Các môi trường phát triển khác
Tính năng | WSL | Môi trường Windows gốc | Máy ảo |
---|---|---|---|
Hiệu năng | Nhẹ, sử dụng ít tài nguyên | Trung bình, tùy thuộc vào công cụ | Tiêu thụ tài nguyên cao |
Tích hợp | Tích hợp hoàn toàn với Windows | Gốc nhưng hạn chế hỗ trợ Linux | Tích hợp hạn chế với Windows |
Hệ thống tệp | Truy cập được cả tệp Linux và Windows | Chỉ hỗ trợ tệp Windows | Hệ thống tệp riêng biệt |
Thời gian thiết lập | Thiết lập nhanh và dễ dàng | Có sẵn mặc định | Tốn thời gian cài đặt và cấu hình |
Tương thích công cụ | Hỗ trợ các công cụ Linux như bash , git , make | Có thể thiếu tương thích với một số công cụ | Tương thích hoàn toàn với Linux |
Trường hợp sử dụng | Phù hợp cho phát triển ưu tiên Linux | Tốt cho các quy trình chỉ trên Windows | Phù hợp với môi trường cô lập |
Lợi ích khi sử dụng WSL
1. Tương thích Linux trên Windows
- Chạy các công cụ Linux gốc (
bash
,vim
,grep
) trực tiếp trên Windows - Tránh việc phải dual boot hoặc sử dụng máy riêng
- Code trên môi trường Linux còn giao diện Windows và sử dụng các tính năng của Windows bình thường
2. Sử dụng tài nguyên hiệu quả
- WSL 2 hoạt động trên một máy ảo nhẹ, sử dụng ít RAM và CPU hơn so với máy ảo thông thường
3. Truy cập hệ thống tệp dễ dàng
Truy cập tệp từ cả Linux và Windows:
# Tệp Linux
/home/user/project
# Tệp Windows từ WSL
/mnt/c/Users/TenCuaBan/
# Tệp WSL từ Windows
\\wsl$\Ubuntu\home\user\
4. Giảm lỗi khi phát triển
- Các dự án dựa trên Linux (Node.js, Python, Docker) chạy mượt mà hơn trên môi trường Linux
- Giảm thiểu lỗi compatibility so với Windows thuần
5. Tích hợp với các công cụ phổ biến
- Dễ dàng tích hợp với Git, Docker, VS Code và các công cụ phát triển khác
- Không cần dual boot
Các trường hợp sử dụng chính của WSL
🔧 Phát triển ứng dụng đa nền tảng
Sử dụng WSL để làm việc với các framework và công cụ ưu tiên Linux, đồng thời kiểm tra trên Windows.
🐳 Phát triển Docker và Container
WSL 2 hỗ trợ Docker Desktop, cho phép luồng công việc với container hiệu quả.
📚 Học Linux
Lý tưởng cho người dùng Windows muốn khám phá các lệnh và công cụ Linux mà không ảnh hưởng đến hệ điều hành chính.
🛠️ Tránh lỗi hệ thống
Nhiều công cụ và thư viện thiết kế cho Linux (Node.js, npm) hoạt động ổn định hơn trên WSL so với trực tiếp trên Windows.
Cài đặt WSL và các tính năng cơ bản
Resources chính thức:
- How to install Linux on Windows with WSL
- Get started using Visual Studio Code with Windows Subsystem for Linux
- WSL | WebStorm Documentation
- Get started using Git on Windows Subsystem for Linux
Setup WSL cho Avada Projects
Prerequisites
Đảm bảo đã cài đặt:
- WSL 2 với Ubuntu distribution
- Node.js và npm/yarn trong WSL
- Git configured trong WSL
Setup SSL Certificates với mkcert
Tại sao cần SSL cho local development?
Cài đặt mkcert
mkcert GitHub Repository - Tool để tạo local SSL certificates
Setup workflow:
-
Cài mkcert cho Windows (như bình thường)
-
Copy certificates vào Ubuntu
Lý doChrome chạy trên Windows và đọc chứng chỉ từ Windows store
-
Rename certificates:
# mkcert tạo ra:
key.pem → ssl.key
cert.pem → ssl.crt
Lấy đúng file certificates và đảm bảo paths chính xác cho project!
Project Configuration
Environment Configuration
- Joy Project
- Chatty Project
BACKEND_PORT=5010
FRONTEND_PORT=3010
BACKEND_PORT=5050
FRONTEND_PORT=3050
- Đổi ports trong functions và script tags nếu cần
- Đảm bảo ports không conflict với services khác
Development Workflow
1. Start Firebase Emulators
./node_modules/.bin/firebase emulators:start --only hosting,functions,pubsub
2. Start Development Server
yarn start-dev-embed
3. Watch Assets (trong thư mục assets)
yarn watch:standalone
Additional Setup Requirements
Java Environment
- JAVA_HOME: Cài đặt riêng cho Ubuntu environment
- Configure proper Java paths trong WSL
Git Integration
- Link Git Ubuntu to Windows: Sync git configuration giữa environments
- Setup SSH keys và credentials
Service Account
- Configure service account credentials
- Đảm bảo proper authentication cho Firebase services
Troubleshooting Common Issues
Port Conflicts
# Check port usage
netstat -tulpn | grep :3050
lsof -i :3050
# Kill process on port
kill -9 $(lsof -ti:3050)
File Permission Issues
# Fix common permission issues
chmod +x node_modules/.bin/firebase
sudo chown -R $USER:$USER ~/.npm
WSL Performance Optimization
# Place project files in WSL filesystem for better performance
# BAD: /mnt/c/Users/YourName/project
# GOOD: /home/username/project
Best Practices
1. File Location Strategy
- Đặt project files trong WSL filesystem (
/home/user/
) thay vì Windows filesystem (/mnt/c/
) - Better performance và file watching capabilities
2. Development Environment
- Sử dụng WSL terminal cho development commands
- VS Code với WSL extension cho editing
- Windows browser cho testing
3. Git Workflow
- Configure git trong WSL
- Sử dụng SSH keys cho authentication
- Sync .gitconfig giữa Windows và WSL nếu cần
Kết luận
WSL mang lại môi trường development tối ưu cho Avada projects:
- ✅ Linux compatibility cho Node.js và build tools
- ✅ Windows integration cho GUI applications
- ✅ Better performance so với Windows thuần
- ✅ Easier SSL setup với mkcert
- ✅ Native tooling support cho development workflow
- Setup monitoring tools cho development
- Configure automated testing trong WSL environment
- Optimize build performance với WSL 2