create-mendix-widget-gleam 1.1.0 → 1.1.2
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/package.json +1 -1
- package/src/index.mjs +2 -2
- package/template/docs/glendix_guide.md +17 -3
- package/template/gleam.toml +1 -1
package/package.json
CHANGED
package/src/index.mjs
CHANGED
|
@@ -176,7 +176,7 @@ Gleam 언어로 Mendix Pluggable Widget을 개발하여 "Hello World"를 화면
|
|
|
176
176
|
- **Gleam** → JavaScript 컴파일 (target: javascript)
|
|
177
177
|
- **[glendix](https://hexdocs.pm/glendix/)** — React + Mendix Pluggable Widget API의 Gleam FFI 바인딩 (Hex 패키지)
|
|
178
178
|
- **Mendix Pluggable Widget** (React 19)
|
|
179
|
-
- **Package Manager**: ${pm} (npm 의존성은 \`gleam run -m glendix/install\`로 설치)
|
|
179
|
+
- **Package Manager**: ${pm} (기본 npm 의존성은 \`gleam run -m glendix/install\`로 설치, \`bindings.json\` 외부 React 패키지는 수동 설치 필요)
|
|
180
180
|
- **Build**: \`@mendix/pluggable-widgets-tools\` (Rollup 기반)
|
|
181
181
|
|
|
182
182
|
## Architecture
|
|
@@ -215,7 +215,7 @@ React/Mendix FFI 바인딩은 이 프로젝트에 포함되지 않으며, [glend
|
|
|
215
215
|
## Commands
|
|
216
216
|
|
|
217
217
|
\`\`\`bash
|
|
218
|
-
gleam run -m glendix/install # 의존성 설치
|
|
218
|
+
gleam run -m glendix/install # 의존성 설치 + 바인딩 코드 생성 (외부 React 패키지는 사전에 수동 설치 필요)
|
|
219
219
|
gleam run -m glendix/build # 위젯 프로덕션 빌드 (.mpk 생성)
|
|
220
220
|
gleam run -m glendix/dev # 개발 서버 (HMR, port 3000)
|
|
221
221
|
gleam run -m glendix/start # Mendix 테스트 프로젝트와 연동 개발
|
|
@@ -214,9 +214,22 @@ react.none() // React null 반환
|
|
|
214
214
|
}
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
**2단계: `
|
|
217
|
+
**2단계: 패키지 설치** — `bindings.json`에 등록한 패키지는 위젯 프로젝트의 `node_modules`에 설치되어 있어야 합니다. 생성된 `binding_ffi.mjs`가 해당 패키지를 직접 import하므로, Rollup이 번들링할 때 resolve할 수 있어야 합니다.
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
```bash
|
|
220
|
+
# 사용 중인 패키지 매니저에 맞게 설치
|
|
221
|
+
npm install recharts
|
|
222
|
+
# 또는
|
|
223
|
+
pnpm add recharts
|
|
224
|
+
# 또는
|
|
225
|
+
yarn add recharts
|
|
226
|
+
# 또는
|
|
227
|
+
bun add recharts
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**3단계: `gleam run -m glendix/install`** 실행 (바인딩 자동 생성)
|
|
231
|
+
|
|
232
|
+
**4단계: 순수 Gleam 래퍼 모듈 작성** (편의용, 선택사항)
|
|
220
233
|
|
|
221
234
|
```gleam
|
|
222
235
|
// src/chart/recharts.gleam — 순수 Gleam, FFI 없음!
|
|
@@ -235,7 +248,7 @@ pub fn responsive_container() -> Component {
|
|
|
235
248
|
}
|
|
236
249
|
```
|
|
237
250
|
|
|
238
|
-
**
|
|
251
|
+
**5단계: 위젯에서 사용**
|
|
239
252
|
|
|
240
253
|
```gleam
|
|
241
254
|
import chart/recharts
|
|
@@ -1381,6 +1394,7 @@ pub fn dashboard(props) -> ReactElement {
|
|
|
1381
1394
|
| `set_value` 호출 시 에러 | read_only 상태에서 값 설정 | `ev.is_editable(attr)` 확인 후 설정 |
|
|
1382
1395
|
| Hook 순서 에러 | 조건부로 Hook 호출 | Hook은 항상 동일한 순서로 호출해야 함 (React Rules of Hooks) |
|
|
1383
1396
|
| `바인딩이 생성되지 않았습니다` | `binding_ffi.mjs`가 스텁 상태 | `gleam run -m glendix/install` 실행 |
|
|
1397
|
+
| `could not be resolved – treating it as an external dependency` | `bindings.json`에 등록한 패키지가 `node_modules`에 없음 | `npm install <패키지명>` 등으로 설치 후 재빌드 |
|
|
1384
1398
|
| `바인딩에 등록되지 않은 모듈` | `bindings.json`에 해당 패키지 미등록 | `bindings.json`에 패키지와 컴포넌트 추가 후 재설치 |
|
|
1385
1399
|
| `모듈에 없는 컴포넌트` | `bindings.json`의 `components`에 해당 컴포넌트 미등록 | `components` 배열에 추가 후 재설치 |
|
|
1386
1400
|
|
package/template/gleam.toml
CHANGED