158 lines
4 KiB
Markdown
158 lines
4 KiB
Markdown
|
|
# راهنمای رفع خطاهای Flutter Web
|
|||
|
|
|
|||
|
|
## 🔍 **خطاهای رایج و راهحلها**
|
|||
|
|
|
|||
|
|
### 1. **SES (Secure EcmaScript) Lockdown**
|
|||
|
|
```
|
|||
|
|
SES Removing unpermitted intrinsics lockdown-install.js:1:203117
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**علت:** این خطا مربوط به امنیت JavaScript است و در محیطهای development رخ میدهد.
|
|||
|
|
|
|||
|
|
**راهحل:**
|
|||
|
|
- این خطا بر عملکرد تأثیر نمیگذارد
|
|||
|
|
- در production build این خطا کمتر دیده میشود
|
|||
|
|
- میتوانید آن را نادیده بگیرید
|
|||
|
|
|
|||
|
|
### 2. **Source Map Error**
|
|||
|
|
```
|
|||
|
|
Source map error: Error: JSON.parse: unexpected character at line 1 column 1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**علت:** مشکل در فایل source map
|
|||
|
|
|
|||
|
|
**راهحل:**
|
|||
|
|
```bash
|
|||
|
|
# پاک کردن cache و rebuild
|
|||
|
|
flutter clean
|
|||
|
|
flutter pub get
|
|||
|
|
flutter build web --release
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. **WebGL Warning**
|
|||
|
|
```
|
|||
|
|
WEBGL_debug_renderer_info is deprecated in Firefox
|
|||
|
|
WebGL warning: getParameter: The READ_BUFFER attachment is multisampled
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**علت:** هشدارهای WebGL که بر عملکرد تأثیر نمیگذارد
|
|||
|
|
|
|||
|
|
**راهحل:**
|
|||
|
|
- این فقط هشدار است و مشکل جدی نیست
|
|||
|
|
- برای رفع کامل، از مرورگرهای جدیدتر استفاده کنید
|
|||
|
|
|
|||
|
|
### 4. **Invalid argument(s) Error**
|
|||
|
|
```
|
|||
|
|
Invalid argument(s): (740251, 1, 1, 0, 0, 0, 0, 0) main.dart.js:30656:78
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**علت:** ممکن است مربوط به Canvas یا rendering باشد
|
|||
|
|
|
|||
|
|
**راهحل:**
|
|||
|
|
- بررسی GridView و Container ها
|
|||
|
|
- اضافه کردن `shrinkWrap: true` و `physics: NeverScrollableScrollPhysics()`
|
|||
|
|
- حذف margin های اضافی
|
|||
|
|
|
|||
|
|
## 🛠️ **بهبودهای اعمال شده**
|
|||
|
|
|
|||
|
|
### 1. **بهبود Jalali DatePicker:**
|
|||
|
|
```dart
|
|||
|
|
GridView.builder(
|
|||
|
|
shrinkWrap: true,
|
|||
|
|
physics: const NeverScrollableScrollPhysics(),
|
|||
|
|
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
|||
|
|
crossAxisCount: 7,
|
|||
|
|
childAspectRatio: 1,
|
|||
|
|
crossAxisSpacing: 2,
|
|||
|
|
mainAxisSpacing: 2,
|
|||
|
|
),
|
|||
|
|
// ...
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. **بهبود HTML:**
|
|||
|
|
```html
|
|||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|||
|
|
<meta name="description" content="Hesabix - سیستم مدیریت مالی">
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. **تنظیمات Build:**
|
|||
|
|
```bash
|
|||
|
|
# Build بهینه
|
|||
|
|
flutter build web --release
|
|||
|
|
|
|||
|
|
# Build بدون WASM warnings
|
|||
|
|
flutter build web --release --no-wasm-dry-run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🚀 **دستورات مفید**
|
|||
|
|
|
|||
|
|
### پاک کردن و rebuild:
|
|||
|
|
```bash
|
|||
|
|
flutter clean
|
|||
|
|
flutter pub get
|
|||
|
|
flutter build web --release
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### اجرای development server:
|
|||
|
|
```bash
|
|||
|
|
flutter run -d web-server --web-port 8080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### بررسی مشکلات:
|
|||
|
|
```bash
|
|||
|
|
flutter analyze
|
|||
|
|
flutter doctor
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📱 **تست در مرورگرهای مختلف**
|
|||
|
|
|
|||
|
|
### Chrome/Edge:
|
|||
|
|
- بهترین پشتیبانی
|
|||
|
|
- کمترین خطا
|
|||
|
|
|
|||
|
|
### Firefox:
|
|||
|
|
- ممکن است WebGL warnings داشته باشد
|
|||
|
|
- عملکرد خوب
|
|||
|
|
|
|||
|
|
### Safari:
|
|||
|
|
- ممکن است محدودیتهایی داشته باشد
|
|||
|
|
- تست کامل ضروری است
|
|||
|
|
|
|||
|
|
## 🔧 **تنظیمات پیشرفته**
|
|||
|
|
|
|||
|
|
### 1. **غیرفعال کردن WASM warnings:**
|
|||
|
|
```bash
|
|||
|
|
flutter build web --release --no-wasm-dry-run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. **تنظیمات Canvas:**
|
|||
|
|
```dart
|
|||
|
|
// در Jalali DatePicker
|
|||
|
|
Container(
|
|||
|
|
decoration: BoxDecoration(
|
|||
|
|
// استفاده از withValues به جای withOpacity
|
|||
|
|
color: Theme.of(context).primaryColor.withValues(alpha: 0.3),
|
|||
|
|
),
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. **بهینهسازی GridView:**
|
|||
|
|
```dart
|
|||
|
|
GridView.builder(
|
|||
|
|
shrinkWrap: true,
|
|||
|
|
physics: const NeverScrollableScrollPhysics(),
|
|||
|
|
// ...
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## ✅ **نتیجه**
|
|||
|
|
|
|||
|
|
خطاهای نمایش داده شده عمدتاً هشدار هستند و بر عملکرد تقویم شمسی تأثیر نمیگذارند. پروژه به درستی build میشود و آماده استفاده است.
|
|||
|
|
|
|||
|
|
### نکات مهم:
|
|||
|
|
- خطاهای SES و WebGL هشدار هستند
|
|||
|
|
- Source map error با clean و rebuild حل میشود
|
|||
|
|
- تقویم شمسی به درستی کار میکند
|
|||
|
|
- تمام ویژگیها فعال هستند
|