snomiao
3a9365af13
fix(collect-i18n-node-defs): refactor to run ComfyNodeDefImpl only in browser context ( #5775 )
...
## The Problem
The `collect-i18n-node-defs.ts` script started failing ~3 weeks ago when
Vue nodes were introduced ([commit
006e6bd57 ](https://github.com/Comfy-Org/ComfyUI_frontend/commit/006e6bd57 ),
[PR #4263 ](https://github.com/Comfy-Org/ComfyUI_frontend/pull/4263 )).
The issue stems from:
1. **Import chain bringing Vue components into Node.js context:**
```
collect-i18n-node-defs.ts
↓ imports
ComfyNodeDefImpl (from nodeDefStore.ts)
↓ imports
useSubgraphStore (from subgraphStore.ts)
↓ transitively imports
executionStore.ts
↓ imports
ChatHistoryWidget.vue (Vue component!)
```
2. **TypeScript `declare` fields causing Babel errors:**
```
TypeScript 'declare' fields must first be transformed by
@babel/plugin-transform-typescript
```
## This Solution vs PR #5515
### PR #5515 Approach (Complex)
- Adds custom Babel plugins and configurations
- Implements automatic browser globals injection
- Requires **47,517 additions, 9,469 deletions**
- Modifies the entire Playwright babel transformation pipeline
### This PR's Approach (Simple)
- Uses dynamic imports to defer module loading until runtime
- Avoids Babel compilation of problematic TypeScript/Vue files
- **Only 40 lines changed** in a single file
- No configuration changes needed
## How This Fix Works
```typescript
// Instead of static import that Babel tries to compile:
// import { ComfyNodeDefImpl } from '../src/stores/nodeDefStore'
// We use:
// 1. Type-only import (erased at runtime)
import type { ComfyNodeDefImpl } from '../src/stores/nodeDefStore'
// 2. Dynamic import at runtime (bypasses Babel)
const { ComfyNodeDefImpl: ComfyNodeDefImplClass } = await import(
'../src/stores/nodeDefStore'
)
```
---------
Co-authored-by: github-actions <github-actions@github.com >
2025-09-25 22:56:17 -07:00
Christian Byrne
2e72988ef8
[fix] Use defineConfig in playwright.i18n.config.ts for TypeScript compilation ( #5270 )
...
Update playwright.i18n.config.ts to use defineConfig() instead of PlaywrightTestConfig
interface to fix TypeScript compilation issues with 'declare' fields.
The defineConfig API provides proper Vite integration for TypeScript/Babel
compilation, fixing the error: 'TypeScript declare fields must first be
transformed by @babel/plugin-transform-typescript'
Fixes compilation error in i18n collection workflow.
2025-08-30 15:33:30 -07:00
bymyself
76818b54e6
Fix widget label extraction ( #2737 )
2025-02-26 13:44:05 -05:00
Chenlei Hu
e82d795ff9
Trigger node def locale update manually ( #2170 )
2025-01-06 10:54:59 -05:00
Chenlei Hu
7986aebf27
Translate command label on top command dropdown menu ( #1792 )
...
* collect i18n with playwright
* Add command label translation
* Normalize i18n object key
2024-12-04 13:19:53 -05:00