@sequent-org/ifc-viewer 1.0.6-ci.11.0 → 1.0.7-ci.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -41
- package/package.json +4 -2
- package/src/ifc/IfcService.js +14 -9
package/README.md
CHANGED
|
@@ -13,12 +13,7 @@ IFC 3D model viewer component for web applications. Основан на Three.js
|
|
|
13
13
|
npm install @sequent-org/ifc-viewer
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
2.
|
|
17
|
-
```bash
|
|
18
|
-
cp node_modules/web-ifc/web-ifc.wasm public/wasm/
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
3. **Используйте в коде:**
|
|
16
|
+
2. **Используйте в коде:**
|
|
22
17
|
```javascript
|
|
23
18
|
import { IfcViewer } from '@sequent-org/ifc-viewer'
|
|
24
19
|
|
|
@@ -30,7 +25,7 @@ IFC 3D model viewer component for web applications. Основан на Three.js
|
|
|
30
25
|
await viewer.init()
|
|
31
26
|
```
|
|
32
27
|
|
|
33
|
-
**Готово!**
|
|
28
|
+
**Готово!** WASM файл автоматически загружается из пакета. Никаких дополнительных настроек не требуется.
|
|
34
29
|
|
|
35
30
|
## 🚀 Установка
|
|
36
31
|
|
|
@@ -38,21 +33,14 @@ IFC 3D model viewer component for web applications. Основан на Three.js
|
|
|
38
33
|
npm install @sequent-org/ifc-viewer
|
|
39
34
|
```
|
|
40
35
|
|
|
41
|
-
###
|
|
36
|
+
### ✨ Автоматическая настройка WASM
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Скопируйте web-ifc.wasm в папку public/wasm/
|
|
47
|
-
cp node_modules/web-ifc/web-ifc.wasm public/wasm/
|
|
48
|
-
```
|
|
38
|
+
**WASM файл автоматически включается в пакет** - никаких дополнительных настроек не требуется!
|
|
49
39
|
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
- `/node_modules/web-ifc/web-ifc.wasm`
|
|
55
|
-
- И другие стандартные пути
|
|
40
|
+
- ✅ WASM файл автоматически загружается из пакета
|
|
41
|
+
- ✅ Не нужно копировать файлы в публичную папку
|
|
42
|
+
- ✅ Работает "из коробки" в любом проекте
|
|
43
|
+
- ✅ Совместимо с любыми сборщиками (Vite, Webpack, Rollup)
|
|
56
44
|
|
|
57
45
|
**Важно:** Пакет использует парсинг в главном потоке (Web Workers отключены) для максимальной совместимости с различными окружениями.
|
|
58
46
|
|
|
@@ -115,46 +103,36 @@ function showIfcModal(ifcUrl) {
|
|
|
115
103
|
}
|
|
116
104
|
```
|
|
117
105
|
|
|
118
|
-
**Настройка
|
|
106
|
+
**Настройка в Laravel:**
|
|
119
107
|
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
cp node_modules/web-ifc/web-ifc.wasm public/wasm/
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
2. **Или используйте Laravel Storage:**
|
|
126
|
-
```bash
|
|
127
|
-
cp node_modules/web-ifc/web-ifc.wasm storage/app/public/
|
|
128
|
-
php artisan storage:link
|
|
129
|
-
```
|
|
108
|
+
WASM файл автоматически загружается из пакета. Дополнительная настройка не требуется!
|
|
130
109
|
|
|
131
|
-
|
|
110
|
+
**Для кастомных путей (опционально):**
|
|
132
111
|
```javascript
|
|
133
112
|
const viewer = new IfcViewer({
|
|
134
113
|
container: container,
|
|
135
114
|
ifcUrl: ifcUrl,
|
|
136
|
-
wasmUrl: '/
|
|
115
|
+
wasmUrl: '/custom-path/web-ifc.wasm' // Только если нужен кастомный путь
|
|
137
116
|
})
|
|
138
117
|
```
|
|
139
118
|
|
|
140
|
-
**Важно для Laravel:**
|
|
119
|
+
**Важно для Laravel:** Пакет работает "из коробки" без дополнительных настроек Vite.
|
|
141
120
|
|
|
142
121
|
## 🔧 Особенности и совместимость
|
|
143
122
|
|
|
144
123
|
### ✅ Что включено в пакет
|
|
145
124
|
|
|
146
125
|
- **Автономные стили** - не требует Tailwind CSS, Bootstrap или других фреймворков
|
|
147
|
-
-
|
|
126
|
+
- **Автоматический WASM** - файл автоматически включается в пакет
|
|
148
127
|
- **Отключенные Web Workers** - парсинг в главном потоке для максимальной совместимости
|
|
149
128
|
- **Fallback защита** - автоматическое переключение на резервные пути при ошибках WASM
|
|
150
129
|
- **Обработка ошибок** - graceful degradation при критических ошибках
|
|
151
|
-
- **Поддержка wasmUrl** - гибкая настройка пути к WASM файлу
|
|
130
|
+
- **Поддержка wasmUrl** - гибкая настройка пути к WASM файлу (опционально)
|
|
152
131
|
|
|
153
132
|
### 🚫 Что НЕ включено
|
|
154
133
|
|
|
155
134
|
- **IFCWorker** - Web Workers отключены для предотвращения проблем интеграции
|
|
156
135
|
- **Внешние зависимости** - все стили и ресурсы включены в пакет
|
|
157
|
-
- **WASM файл** - нужно скопировать из node_modules (один раз)
|
|
158
136
|
|
|
159
137
|
### 🎯 Совместимость
|
|
160
138
|
|
|
@@ -479,17 +457,17 @@ Cannot resolve module '@sequent-org/ifc-viewer'
|
|
|
479
457
|
|
|
480
458
|
При помощи с интеграцией пакета учитывайте:
|
|
481
459
|
|
|
482
|
-
1.
|
|
460
|
+
1. **WASM файл автоматически включен** - никаких дополнительных настроек не требуется
|
|
483
461
|
2. **Web Workers отключены** - не пытайтесь их включить
|
|
484
|
-
3. **Используйте параметр wasmUrl** для кастомных путей
|
|
462
|
+
3. **Используйте параметр wasmUrl** только для кастомных путей (опционально)
|
|
485
463
|
4. **Пакет полностью автономен** - не требует внешних CSS фреймворков
|
|
486
464
|
5. **Поддерживает все современные фреймворки** - React, Vue, Angular, Laravel
|
|
487
|
-
6.
|
|
465
|
+
6. **Работает "из коробки"** - просто установите и используйте
|
|
488
466
|
|
|
489
467
|
### Отладка
|
|
490
468
|
|
|
491
469
|
- Проверьте консоль на сообщение "Web Workers отключены"
|
|
492
|
-
-
|
|
470
|
+
- WASM файл автоматически загружается из пакета
|
|
493
471
|
- Используйте DevTools → Network для проверки загрузки ресурсов
|
|
494
472
|
- При проблемах используйте параметр `wasmUrl` для кастомного пути
|
|
495
473
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sequent-org/ifc-viewer",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.7-ci.10.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "IFC 3D model viewer component for web applications",
|
|
7
7
|
"main": "src/index.js",
|
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"import": "./src/index.js"
|
|
12
12
|
},
|
|
13
|
-
"./style.css": "./src/style.css"
|
|
13
|
+
"./style.css": "./src/style.css",
|
|
14
|
+
"./wasm/web-ifc.wasm": "./wasm/web-ifc.wasm"
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
16
17
|
"src/",
|
|
18
|
+
"wasm/",
|
|
17
19
|
"README.md"
|
|
18
20
|
],
|
|
19
21
|
"keywords": [
|
package/src/ifc/IfcService.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Требует three@^0.149 и web-ifc-three совместимой версии
|
|
3
3
|
|
|
4
4
|
import { IFCLoader } from "web-ifc-three/IFCLoader";
|
|
5
|
+
// Автоматический импорт WASM файла из пакета
|
|
6
|
+
import WEBIFC_WASM_URL from '/wasm/web-ifc.wasm?url';
|
|
5
7
|
// Примечание: IFCWorker не используется, так как мы отключаем Web Workers
|
|
6
8
|
// для стабильности работы в различных окружениях
|
|
7
9
|
|
|
@@ -79,15 +81,18 @@ export class IfcService {
|
|
|
79
81
|
paths.push(this.wasmUrl);
|
|
80
82
|
}
|
|
81
83
|
|
|
82
|
-
// 2.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
'
|
|
89
|
-
|
|
90
|
-
)
|
|
84
|
+
// 2. WASM файл из пакета (автоматически включен в сборку)
|
|
85
|
+
try {
|
|
86
|
+
paths.push(WEBIFC_WASM_URL);
|
|
87
|
+
} catch (_) {}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
const wasmDir = new URL('.', WEBIFC_WASM_URL).href;
|
|
91
|
+
paths.push(wasmDir);
|
|
92
|
+
} catch (_) {}
|
|
93
|
+
|
|
94
|
+
// 3. Резервные пути для обратной совместимости
|
|
95
|
+
paths.push('/wasm/', '/wasm/web-ifc.wasm', '/web-ifc.wasm');
|
|
91
96
|
|
|
92
97
|
return paths;
|
|
93
98
|
}
|