Migration: pnpm (#5215)

* migration: npm to pnpm
Step 1, package and lockfile

* migration: npm to pnpm
Step 2: docs / LLM instructions

* migration: npm to pnpm
Step 3: More documentation updates

* migration: npm to pnpm
Step 4: Even more documentation

* migration: npm to pnpm
Step 5: GitHub Actions

* migration: npm to pnpm
Step 6: PNPM installation in actions. This merge is going to be painful.

* migration: npm to pnpm
Unignore and add pnpm lockfile.

* migration: npm to pnpm
package-lock.json -> pnpm-lock.yaml

* migration: explicit @primeuix/styled, move glob to prod deps

* migration: more explicit deps required by the importmap plugin and vite

* fix: missed merge artifact

* fix: Make sure pnpm is available to install wrangler

* migration: pnpm for dev-release.yaml

* migration: new setup action version
Won't work until that is updated and a new release is cut.

* migration: Playwright needs uuid

* migration: Add explicit deps for lobehub

* chore(version-bump.yaml): change cache from npm to pnpm to optimize package management and improve build performance

* migration: install pnpm in version-bump action

---------

Co-authored-by: snomiao <snomiao@gmail.com>
This commit is contained in:
Alexander Brown
2025-08-27 06:10:15 -07:00
committed by GitHub
parent cd444b6e59
commit 1b83d6b5a6
35 changed files with 12747 additions and 19943 deletions

View File

@@ -244,21 +244,21 @@ echo "Last stable release: $LAST_STABLE"
1. Run complete test suite: 1. Run complete test suite:
```bash ```bash
npm run test:unit pnpm test:unit
npm run test:component pnpm test:component
``` ```
2. Run type checking: 2. Run type checking:
```bash ```bash
npm run typecheck pnpm typecheck
``` ```
3. Run linting (may have issues with missing packages): 3. Run linting (may have issues with missing packages):
```bash ```bash
npm run lint || echo "Lint issues - verify if critical" pnpm lint || echo "Lint issues - verify if critical"
``` ```
4. Test build process: 4. Test build process:
```bash ```bash
npm run build pnpm build
npm run build:types pnpm build:types
``` ```
5. **QUALITY GATE**: All tests and builds passing? 5. **QUALITY GATE**: All tests and builds passing?
@@ -488,7 +488,7 @@ echo "Workflow triggered. Waiting for PR creation..."
```bash ```bash
# Check npm availability # Check npm availability
for i in {1..10}; do for i in {1..10}; do
if npm view @comfyorg/comfyui-frontend-types@${NEW_VERSION} version >/dev/null 2>&1; then if pnpm view @comfyorg/comfyui-frontend-types@${NEW_VERSION} version >/dev/null 2>&1; then
echo "✅ npm package available" echo "✅ npm package available"
break break
fi fi

View File

@@ -80,7 +80,7 @@ For each commit:
- **CONFIRMATION REQUIRED**: Conflicts resolved correctly? - **CONFIRMATION REQUIRED**: Conflicts resolved correctly?
3. After successful cherry-pick: 3. After successful cherry-pick:
- Show the changes: `git show HEAD` - Show the changes: `git show HEAD`
- Run validation: `npm run typecheck && npm run lint` - Run validation: `pnpm typecheck && pnpm lint`
4. **CONFIRMATION REQUIRED**: Cherry-pick successful and valid? 4. **CONFIRMATION REQUIRED**: Cherry-pick successful and valid?
### Step 6: Create PR to Core Branch ### Step 6: Create PR to Core Branch
@@ -197,7 +197,7 @@ For each commit:
5. Track progress: 5. Track progress:
- GitHub release draft/publication - GitHub release draft/publication
- PyPI upload - PyPI upload
- npm types publication - pnpm types publication
### Step 12: Post-Release Verification ### Step 12: Post-Release Verification
@@ -211,7 +211,7 @@ For each commit:
``` ```
3. Verify npm package: 3. Verify npm package:
```bash ```bash
npm view @comfyorg/comfyui-frontend-types@1.23.5 pnpm view @comfyorg/comfyui-frontend-types@1.23.5
``` ```
4. Generate release summary with: 4. Generate release summary with:
- Version released - Version released

View File

@@ -5,7 +5,7 @@ Follow these steps systematically to verify our changes:
1. **Server Setup** 1. **Server Setup**
- Check if the dev server is running on port 5173 using browser navigation or port checking - Check if the dev server is running on port 5173 using browser navigation or port checking
- If not running, start it with `npm run dev` from the root directory - If not running, start it with `pnpm dev` from the root directory
- If the server fails to start, provide detailed troubleshooting steps by reading package.json and README.md for accurate instructions - If the server fails to start, provide detailed troubleshooting steps by reading package.json and README.md for accurate instructions
- Wait for the server to be fully ready before proceeding - Wait for the server to be fully ready before proceeding

View File

@@ -21,11 +21,16 @@ jobs:
with: with:
fetch-depth: 0 # Required for Chromatic baseline fetch-depth: 0 # Required for Chromatic baseline
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: '20' node-version: '20'
cache: 'npm' cache: 'pnpm'
- name: Get current time - name: Get current time
id: current-time id: current-time
@@ -58,14 +63,14 @@ jobs:
.cache .cache
storybook-static storybook-static
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
key: storybook-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('src/**/*.{ts,vue,js}', '*.config.*', '.storybook/**/*') }} key: storybook-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('src/**/*.{ts,vue,js}', '*.config.*', '.storybook/**/*') }}
restore-keys: | restore-keys: |
storybook-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}- storybook-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-
storybook-cache-${{ runner.os }}- storybook-cache-${{ runner.os }}-
storybook-tools-cache-${{ runner.os }}- storybook-tools-cache-${{ runner.os }}-
- name: Install dependencies - name: Install dependencies
run: npm ci run: pnpm install --frozen-lockfile
- name: Build Storybook and run Chromatic - name: Build Storybook and run Chromatic
id: chromatic id: chromatic

View File

@@ -53,14 +53,20 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: '20' node-version: '20'
cache: 'pnpm'
- name: Install dependencies for analysis tools - name: Install dependencies for analysis tools
run: | run: |
npm install -g typescript @vue/compiler-sfc pnpm install -g typescript @vue/compiler-sfc
- name: Run Claude PR Review - name: Run Claude PR Review
uses: anthropics/claude-code-action@main uses: anthropics/claude-code-action@main

View File

@@ -16,10 +16,14 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
@@ -28,7 +32,7 @@ jobs:
.cache .cache
dist dist
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
key: dev-release-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: dev-release-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
dev-release-tools-cache-${{ runner.os }}- dev-release-tools-cache-${{ runner.os }}-
@@ -42,9 +46,9 @@ jobs:
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }} ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
USE_PROD_CONFIG: 'true' USE_PROD_CONFIG: 'true'
run: | run: |
npm ci pnpm install --frozen-lockfile
npm run build pnpm build
npm run zipdist pnpm zipdist
- name: Upload dist artifact - name: Upload dist artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:

View File

@@ -42,9 +42,14 @@ jobs:
with: with:
repository: ${{ inputs.owner }}/${{ inputs.repository }} repository: ${{ inputs.owner }}/${{ inputs.repository }}
path: 'ComfyUI/custom_nodes/${{ inputs.repository }}' path: 'ComfyUI/custom_nodes/${{ inputs.repository }}'
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'pnpm'
- uses: actions/setup-python@v4 - uses: actions/setup-python@v4
with: with:
python-version: '3.10' python-version: '3.10'
@@ -63,8 +68,8 @@ jobs:
working-directory: ComfyUI/custom_nodes/${{ inputs.repository }} working-directory: ComfyUI/custom_nodes/${{ inputs.repository }}
- name: Build & Install ComfyUI_frontend - name: Build & Install ComfyUI_frontend
run: | run: |
npm ci pnpm install --frozen-lockfile
npm run build pnpm build
rm -rf ../ComfyUI/web/* rm -rf ../ComfyUI/web/*
mv dist/* ../ComfyUI/web/ mv dist/* ../ComfyUI/web/
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
@@ -79,18 +84,18 @@ jobs:
- name: Start dev server - name: Start dev server
# Run electron dev server as it is a superset of the web dev server # Run electron dev server as it is a superset of the web dev server
# We do want electron specific UIs to be translated. # We do want electron specific UIs to be translated.
run: npm run dev:electron & run: pnpm dev:electron &
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Capture base i18n - name: Capture base i18n
run: npx tsx scripts/diff-i18n capture run: npx tsx scripts/diff-i18n capture
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update en.json - name: Update en.json
run: npm run collect-i18n run: pnpm collect-i18n
env: env:
PLAYWRIGHT_TEST_URL: http://localhost:5173 PLAYWRIGHT_TEST_URL: http://localhost:5173
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update translations - name: Update translations
run: npm run locale run: pnpm locale
env: env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend

View File

@@ -13,22 +13,22 @@ jobs:
update-locales: update-locales:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: Comfy-Org/ComfyUI_frontend_setup_action@v2.3 - uses: Comfy-Org/ComfyUI_frontend_setup_action@v3
- name: Install Playwright Browsers - name: Install Playwright Browsers
run: npx playwright install chromium --with-deps run: npx playwright install chromium --with-deps
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Start dev server - name: Start dev server
# Run electron dev server as it is a superset of the web dev server # Run electron dev server as it is a superset of the web dev server
# We do want electron specific UIs to be translated. # We do want electron specific UIs to be translated.
run: npm run dev:electron & run: pnpm dev:electron &
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update en.json - name: Update en.json
run: npm run collect-i18n -- scripts/collect-i18n-node-defs.ts run: pnpm collect-i18n -- scripts/collect-i18n-node-defs.ts
env: env:
PLAYWRIGHT_TEST_URL: http://localhost:5173 PLAYWRIGHT_TEST_URL: http://localhost:5173
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update translations - name: Update translations
run: npm run locale run: pnpm locale
env: env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend

View File

@@ -16,7 +16,7 @@ jobs:
if: github.event.pull_request.head.repo.full_name == github.repository if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: Comfy-Org/ComfyUI_frontend_setup_action@v2.3 - uses: Comfy-Org/ComfyUI_frontend_setup_action@v3
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
@@ -24,7 +24,7 @@ jobs:
path: | path: |
ComfyUI_frontend/.cache ComfyUI_frontend/.cache
ComfyUI_frontend/.cache ComfyUI_frontend/.cache
key: i18n-tools-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/package-lock.json') }} key: i18n-tools-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
i18n-tools-cache-${{ runner.os }}- i18n-tools-cache-${{ runner.os }}-
- name: Install Playwright Browsers - name: Install Playwright Browsers
@@ -33,15 +33,15 @@ jobs:
- name: Start dev server - name: Start dev server
# Run electron dev server as it is a superset of the web dev server # Run electron dev server as it is a superset of the web dev server
# We do want electron specific UIs to be translated. # We do want electron specific UIs to be translated.
run: npm run dev:electron & run: pnpm dev:electron &
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update en.json - name: Update en.json
run: npm run collect-i18n -- scripts/collect-i18n-general.ts run: pnpm collect-i18n -- scripts/collect-i18n-general.ts
env: env:
PLAYWRIGHT_TEST_URL: http://localhost:5173 PLAYWRIGHT_TEST_URL: http://localhost:5173
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Update translations - name: Update translations
run: npm run locale run: pnpm locale
env: env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend

View File

@@ -19,11 +19,16 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0 fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Use Node.js - name: Use Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
@@ -34,20 +39,20 @@ jobs:
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
.prettierCache .prettierCache
.knip-cache .knip-cache
key: lint-format-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('src/**/*.{ts,vue,js,mts}', '*.config.*', '.eslintrc.*', '.prettierrc.*', 'tsconfig.json') }} key: lint-format-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('src/**/*.{ts,vue,js,mts}', '*.config.*', '.eslintrc.*', '.prettierrc.*', 'tsconfig.json') }}
restore-keys: | restore-keys: |
lint-format-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}- lint-format-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-
lint-format-cache-${{ runner.os }}- lint-format-cache-${{ runner.os }}-
ci-tools-cache-${{ runner.os }}- ci-tools-cache-${{ runner.os }}-
- name: Install dependencies - name: Install dependencies
run: npm ci run: pnpm install --frozen-lockfile
- name: Run ESLint with auto-fix - name: Run ESLint with auto-fix
run: npm run lint:fix run: pnpm lint:fix
- name: Run Prettier with auto-format - name: Run Prettier with auto-format
run: npm run format run: pnpm format
- name: Check for changes - name: Check for changes
id: verify-changed-files id: verify-changed-files
@@ -69,9 +74,9 @@ jobs:
- name: Final validation - name: Final validation
run: | run: |
npm run lint pnpm lint
npm run format:check pnpm format:check
npm run knip pnpm knip
- name: Comment on PR about auto-fix - name: Comment on PR about auto-fix
if: steps.verify-changed-files.outputs.changed == 'true' && github.event.pull_request.head.repo.full_name == github.repository if: steps.verify-changed-files.outputs.changed == 'true' && github.event.pull_request.head.repo.full_name == github.repository
@@ -96,5 +101,5 @@ jobs:
issue_number: context.issue.number, issue_number: context.issue.number,
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
body: '## ⚠️ Linting/Formatting Issues Found\n\nThis PR has linting or formatting issues that need to be fixed.\n\n**Since this PR is from a fork, auto-fix cannot be applied automatically.**\n\n### Option 1: Set up pre-commit hooks (recommended)\nRun this once to automatically format code on every commit:\n```bash\nnpm run prepare\n```\n\n### Option 2: Fix manually\nRun these commands and push the changes:\n```bash\nnpm run lint:fix\nnpm run format\n```\n\nSee [CONTRIBUTING.md](https://github.com/Comfy-Org/ComfyUI_frontend/blob/main/CONTRIBUTING.md#git-pre-commit-hooks) for more details.' body: '## ⚠️ Linting/Formatting Issues Found\n\nThis PR has linting or formatting issues that need to be fixed.\n\n**Since this PR is from a fork, auto-fix cannot be applied automatically.**\n\n### Option 1: Set up pre-commit hooks (recommended)\nRun this once to automatically format code on every commit:\n```bash\npnpm prepare\n```\n\n### Option 2: Fix manually\nRun these commands and push the changes:\n```bash\npnpm lint:fix\npnpm format\n```\n\nSee [CONTRIBUTING.md](https://github.com/Comfy-Org/ComfyUI_frontend/blob/main/CONTRIBUTING.md#git-pre-commit-hooks) for more details.'
}) })

View File

@@ -19,10 +19,14 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
@@ -30,7 +34,7 @@ jobs:
path: | path: |
.cache .cache
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
key: release-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: release-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
release-tools-cache-${{ runner.os }}- release-tools-cache-${{ runner.os }}-
@@ -53,9 +57,9 @@ jobs:
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }} ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
USE_PROD_CONFIG: 'true' USE_PROD_CONFIG: 'true'
run: | run: |
npm ci pnpm install --frozen-lockfile
npm run build pnpm build
npm run zipdist pnpm zipdist
- name: Upload dist artifact - name: Upload dist artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -125,10 +129,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'npm' cache: 'pnpm'
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Cache tool outputs - name: Cache tool outputs
@@ -138,14 +146,14 @@ jobs:
.cache .cache
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
dist dist
key: types-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: types-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
types-tools-cache-${{ runner.os }}- types-tools-cache-${{ runner.os }}-
- run: npm ci - run: pnpm install --frozen-lockfile
- run: npm run build:types - run: pnpm build:types
- name: Publish package - name: Publish package
run: npm publish --access public run: pnpm publish --access public
working-directory: dist working-directory: dist
env: env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event.label.name == 'New Browser Test Expectations' if: github.event.label.name == 'New Browser Test Expectations'
steps: steps:
- uses: Comfy-Org/ComfyUI_frontend_setup_action@v2.3 - uses: Comfy-Org/ComfyUI_frontend_setup_action@v3
- name: Install Playwright Browsers - name: Install Playwright Browsers
run: npx playwright install chromium --with-deps run: npx playwright install chromium --with-deps
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend

View File

@@ -37,11 +37,16 @@ jobs:
path: 'ComfyUI/custom_nodes/ComfyUI_devtools' path: 'ComfyUI/custom_nodes/ComfyUI_devtools'
ref: 'd05fd48dd787a4192e16802d4244cfcc0e2f9684' ref: 'd05fd48dd787a4192e16802d4244cfcc0e2f9684'
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'npm' cache: 'pnpm'
cache-dependency-path: 'ComfyUI_frontend/package-lock.json' cache-dependency-path: 'ComfyUI_frontend/pnpm-lock.yaml'
- name: Get current time - name: Get current time
id: current-time id: current-time
@@ -73,16 +78,16 @@ jobs:
path: | path: |
ComfyUI_frontend/.cache ComfyUI_frontend/.cache
ComfyUI_frontend/tsconfig.tsbuildinfo ComfyUI_frontend/tsconfig.tsbuildinfo
key: playwright-setup-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/package-lock.json') }}-${{ hashFiles('ComfyUI_frontend/src/**/*.{ts,vue,js}', 'ComfyUI_frontend/*.config.*') }} key: playwright-setup-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/pnpm-lock.yaml') }}-${{ hashFiles('ComfyUI_frontend/src/**/*.{ts,vue,js}', 'ComfyUI_frontend/*.config.*') }}
restore-keys: | restore-keys: |
playwright-setup-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/package-lock.json') }}- playwright-setup-cache-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/pnpm-lock.yaml') }}-
playwright-setup-cache-${{ runner.os }}- playwright-setup-cache-${{ runner.os }}-
playwright-tools-cache-${{ runner.os }}- playwright-tools-cache-${{ runner.os }}-
- name: Build ComfyUI_frontend - name: Build ComfyUI_frontend
run: | run: |
npm ci pnpm install --frozen-lockfile
npm run build pnpm build
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Generate cache key - name: Generate cache key
@@ -129,6 +134,11 @@ jobs:
ComfyUI_frontend ComfyUI_frontend
key: comfyui-setup-${{ needs.setup.outputs.cache-key }} key: comfyui-setup-${{ needs.setup.outputs.cache-key }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-python@v4 - uses: actions/setup-python@v4
with: with:
python-version: '3.10' python-version: '3.10'
@@ -179,9 +189,9 @@ jobs:
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.cache/ms-playwright path: ~/.cache/ms-playwright
key: playwright-browsers-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/package-lock.json') }}-${{ matrix.browser }} key: playwright-browsers-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/pnpm-lock.yaml') }}-${{ matrix.browser }}
restore-keys: | restore-keys: |
playwright-browsers-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/package-lock.json') }}- playwright-browsers-${{ runner.os }}-${{ hashFiles('ComfyUI_frontend/pnpm-lock.yaml') }}-
playwright-browsers-${{ runner.os }}- playwright-browsers-${{ runner.os }}-
- name: Install Playwright Browsers - name: Install Playwright Browsers
@@ -189,7 +199,7 @@ jobs:
working-directory: ComfyUI_frontend working-directory: ComfyUI_frontend
- name: Install Wrangler - name: Install Wrangler
run: npm install -g wrangler run: pnpm install -g wrangler
- name: Run Playwright tests (${{ matrix.browser }}) - name: Run Playwright tests (${{ matrix.browser }})
id: playwright id: playwright

View File

@@ -14,28 +14,33 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: | path: |
.cache .cache
key: electron-types-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: electron-types-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
electron-types-tools-cache-${{ runner.os }}- electron-types-tools-cache-${{ runner.os }}-
- name: Update electron types - name: Update electron types
run: npm install @comfyorg/comfyui-electron-types@latest run: pnpm install @comfyorg/comfyui-electron-types@latest
- name: Get new version - name: Get new version
id: get-version id: get-version
run: | run: |
NEW_VERSION=$(node -e "console.log(JSON.parse(require('fs').readFileSync('./package-lock.json')).packages['node_modules/@comfyorg/comfyui-electron-types'].version)") NEW_VERSION=$(node -e "console.log(JSON.parse(require('fs').readFileSync('./pnpm-lock.yaml')).packages['node_modules/@comfyorg/comfyui-electron-types'].version)")
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT
- name: Create Pull Request - name: Create Pull Request

View File

@@ -19,23 +19,28 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: | path: |
.cache .cache
key: update-manager-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: update-manager-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
update-manager-tools-cache-${{ runner.os }}- update-manager-tools-cache-${{ runner.os }}-
- name: Install dependencies - name: Install dependencies
run: npm ci run: pnpm install --frozen-lockfile
- name: Cache ComfyUI-Manager repository - name: Cache ComfyUI-Manager repository
uses: actions/cache@v4 uses: actions/cache@v4
@@ -81,7 +86,7 @@ jobs:
- name: Lint generated types - name: Lint generated types
run: | run: |
echo "Linting generated ComfyUI-Manager API types..." echo "Linting generated ComfyUI-Manager API types..."
npm run lint:fix:no-cache -- ./src/types/generatedManagerTypes.ts pnpm lint:fix:no-cache -- ./src/types/generatedManagerTypes.ts
- name: Check for changes - name: Check for changes
id: check-changes id: check-changes

View File

@@ -18,23 +18,28 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: | path: |
.cache .cache
key: update-registry-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} key: update-registry-tools-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
update-registry-tools-cache-${{ runner.os }}- update-registry-tools-cache-${{ runner.os }}-
- name: Install dependencies - name: Install dependencies
run: npm ci run: pnpm install --frozen-lockfile
- name: Cache comfy-api repository - name: Cache comfy-api repository
uses: actions/cache@v4 uses: actions/cache@v4
@@ -81,7 +86,7 @@ jobs:
- name: Lint generated types - name: Lint generated types
run: | run: |
echo "Linting generated Comfy Registry API types..." echo "Linting generated Comfy Registry API types..."
npm run lint:fix:no-cache -- ./src/types/comfyRegistryTypes.ts pnpm lint:fix:no-cache -- ./src/types/comfyRegistryTypes.ts
- name: Check for changes - name: Check for changes
id: check-changes id: check-changes

View File

@@ -26,16 +26,21 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'npm' cache: 'pnpm'
- name: Bump version - name: Bump version
id: bump-version id: bump-version
run: | run: |
npm version ${{ github.event.inputs.version_type }} --preid ${{ github.event.inputs.pre_release }} --no-git-tag-version pnpm version ${{ github.event.inputs.version_type }} --preid ${{ github.event.inputs.pre_release }} --no-git-tag-version
NEW_VERSION=$(node -p "require('./package.json').version") NEW_VERSION=$(node -p "require('./package.json').version")
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT

View File

@@ -13,11 +13,16 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Use Node.js - name: Use Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 'lts/*' node-version: 'lts/*'
cache: 'npm' cache: 'pnpm'
- name: Cache tool outputs - name: Cache tool outputs
uses: actions/cache@v4 uses: actions/cache@v4
@@ -26,16 +31,16 @@ jobs:
.cache .cache
coverage coverage
.vitest-cache .vitest-cache
key: vitest-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('src/**/*.{ts,vue,js}', 'vitest.config.*', 'tsconfig.json') }} key: vitest-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('src/**/*.{ts,vue,js}', 'vitest.config.*', 'tsconfig.json') }}
restore-keys: | restore-keys: |
vitest-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}- vitest-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-
vitest-cache-${{ runner.os }}- vitest-cache-${{ runner.os }}-
test-tools-cache-${{ runner.os }}- test-tools-cache-${{ runner.os }}-
- name: Install dependencies - name: Install dependencies
run: npm ci run: pnpm install --frozen-lockfile
- name: Run Vitest tests - name: Run Vitest tests
run: | run: |
npm run test:component pnpm test:component
npm run test:unit pnpm test:unit

1
.gitignore vendored
View File

@@ -10,7 +10,6 @@ lerna-debug.log*
# Package manager lockfiles (allow users to use different package managers) # Package manager lockfiles (allow users to use different package managers)
bun.lock bun.lock
bun.lockb bun.lockb
pnpm-lock.yaml
yarn.lock yarn.lock
# Cache files # Cache files

View File

@@ -2,9 +2,9 @@
## Quick Commands ## Quick Commands
- `npm run storybook`: Start Storybook development server - `pnpm storybook`: Start Storybook development server
- `npm run build-storybook`: Build static Storybook - `pnpm build-storybook`: Build static Storybook
- `npm run test:component`: Run component tests (includes Storybook components) - `pnpm test:component`: Run component tests (includes Storybook components)
## Development Workflow for Storybook ## Development Workflow for Storybook
@@ -19,8 +19,8 @@
- Ensure proper theming and styling - Ensure proper theming and styling
3. **Code Quality**: 3. **Code Quality**:
- Run `npm run typecheck` to verify TypeScript - Run `pnpm typecheck` to verify TypeScript
- Run `npm run lint` to check for linting issues - Run `pnpm lint` to check for linting issues
- Follow existing story patterns and conventions - Follow existing story patterns and conventions
## Story Creation Guidelines ## Story Creation Guidelines
@@ -138,13 +138,13 @@ The Storybook preview is configured with:
```bash ```bash
# Check TypeScript issues # Check TypeScript issues
npm run typecheck pnpm typecheck
# Lint Storybook files # Lint Storybook files
npm run lint .storybook/ pnpm lint .storybook/
# Build to check for production issues # Build to check for production issues
npm run build-storybook pnpm build-storybook
``` ```
## File Organization ## File Organization

View File

@@ -40,10 +40,10 @@ Storybook is a frontend workshop for building UI components and pages in isolati
```bash ```bash
# Start Storybook development server # Start Storybook development server
npm run storybook pnpm storybook
# Build static Storybook for deployment # Build static Storybook for deployment
npm run build-storybook pnpm build-storybook
``` ```
### Creating Stories ### Creating Stories

View File

@@ -8,19 +8,19 @@
- Config: `vite.config.mts`, `vitest.config.ts`, `playwright.config.ts`, `eslint.config.js`, `.prettierrc`. - Config: `vite.config.mts`, `vitest.config.ts`, `playwright.config.ts`, `eslint.config.js`, `.prettierrc`.
## Build, Test, and Development Commands ## Build, Test, and Development Commands
- `npm run dev`: Start Vite dev server. - `pnpm dev`: Start Vite dev server.
- `npm run dev:electron`: Dev server with Electron API mocks. - `pnpm dev:electron`: Dev server with Electron API mocks.
- `npm run build`: Type-check then production build to `dist/`. - `pnpm build`: Type-check then production build to `dist/`.
- `npm run preview`: Preview the production build locally. - `pnpm preview`: Preview the production build locally.
- `npm run test:unit`: Run Vitest unit tests (`tests-ui/`). - `pnpm test:unit`: Run Vitest unit tests (`tests-ui/`).
- `npm run test:component`: Run component tests (`src/components/`). - `pnpm test:component`: Run component tests (`src/components/`).
- `npm run test:browser`: Run Playwright E2E tests (`browser_tests/`). - `pnpm test:browser`: Run Playwright E2E tests (`browser_tests/`).
- `npm run lint` / `npm run lint:fix`: Lint (ESLint). `npm run format` / `format:check`: Prettier. - `pnpm lint` / `pnpm lint:fix`: Lint (ESLint). `pnpm format` / `format:check`: Prettier.
- `npm run typecheck`: Vue TSC type checking. - `pnpm typecheck`: Vue TSC type checking.
## Coding Style & Naming Conventions ## Coding Style & Naming Conventions
- Language: TypeScript, Vue SFCs (`.vue`). Indent 2 spaces; single quotes; no semicolons; width 80 (see `.prettierrc`). - Language: TypeScript, Vue SFCs (`.vue`). Indent 2 spaces; single quotes; no semicolons; width 80 (see `.prettierrc`).
- Imports: sorted/grouped by plugin; run `npm run format` before committing. - Imports: sorted/grouped by plugin; run `pnpm format` before committing.
- ESLint: Vue + TS rules; no floating promises; unused imports disallowed; i18n raw text restrictions in templates. - ESLint: Vue + TS rules; no floating promises; unused imports disallowed; i18n raw text restrictions in templates.
- Naming: Vue components in PascalCase (e.g., `MenuHamburger.vue`); composables `useXyz.ts`; Pinia stores `*Store.ts`. - Naming: Vue components in PascalCase (e.g., `MenuHamburger.vue`); composables `useXyz.ts`; Pinia stores `*Store.ts`.
@@ -33,7 +33,7 @@
## Commit & Pull Request Guidelines ## Commit & Pull Request Guidelines
- Commits: Prefer Conventional Commits (e.g., `feat(ui): add sidebar`), `refactor(litegraph): …`. Use `[skip ci]` for locale-only updates when appropriate. - Commits: Prefer Conventional Commits (e.g., `feat(ui): add sidebar`), `refactor(litegraph): …`. Use `[skip ci]` for locale-only updates when appropriate.
- PRs: Include clear description, linked issues (`Fixes #123`), and screenshots/GIFs for UI changes. Add/adjust tests and i18n strings when applicable. - PRs: Include clear description, linked issues (`Fixes #123`), and screenshots/GIFs for UI changes. Add/adjust tests and i18n strings when applicable.
- Quality gates: `npm run lint`, `npm run typecheck`, and relevant tests must pass. Keep PRs focused and small. - Quality gates: `pnpm lint`, `pnpm typecheck`, and relevant tests must pass. Keep PRs focused and small.
## Security & Configuration Tips ## Security & Configuration Tips
- Secrets: Use `.env` (see `.env_example`); do not commit secrets. - Secrets: Use `.env` (see `.env_example`); do not commit secrets.

View File

@@ -2,13 +2,13 @@
## Quick Commands ## Quick Commands
- `npm run`: See all available commands - `pnpm`: See all available commands
- `npm run typecheck`: Type checking - `pnpm typecheck`: Type checking
- `npm run lint`: Linting - `pnpm lint`: Linting
- `npm run format`: Prettier formatting - `pnpm format`: Prettier formatting
- `npm run test:component`: Run component tests with browser environment - `pnpm test:component`: Run component tests with browser environment
- `npm run test:unit`: Run all unit tests - `pnpm test:unit`: Run all unit tests
- `npm run test:unit -- tests-ui/tests/example.test.ts`: Run single test file - `pnpm test:unit -- tests-ui/tests/example.test.ts`: Run single test file
## Development Workflow ## Development Workflow

View File

@@ -17,7 +17,7 @@ Have another idea? Drop into Discord or open an issue, and let's chat!
### Prerequisites & Technology Stack ### Prerequisites & Technology Stack
- **Required Software**: - **Required Software**:
- Node.js (v16 or later; v20/v22 strongly recommended) and npm - Node.js (v16 or later; v24 strongly recommended) and pnpm
- Git for version control - Git for version control
- A running ComfyUI backend instance - A running ComfyUI backend instance
@@ -39,7 +39,7 @@ Have another idea? Drop into Discord or open an issue, and let's chat!
2. Install dependencies: 2. Install dependencies:
```bash ```bash
npm install pnpm install
``` ```
3. Configure environment (optional): 3. Configure environment (optional):
@@ -57,13 +57,13 @@ python main.py --port 8188
### Git pre-commit hooks ### Git pre-commit hooks
Run `npm run prepare` to install Git pre-commit hooks. Currently, the pre-commit hook is used to auto-format code on commit. Run `pnpm prepare` to install Git pre-commit hooks. Currently, the pre-commit hook is used to auto-format code on commit.
### Dev Server ### Dev Server
- Start local ComfyUI backend at `localhost:8188` - Start local ComfyUI backend at `localhost:8188`
- Run `npm run dev` to start the dev server - Run `pnpm dev` to start the dev server
- Run `npm run dev:electron` to start the dev server with electron API mocked - Run `pnpm dev:electron` to start the dev server with electron API mocked
#### Access dev server on touch devices #### Access dev server on touch devices
@@ -155,7 +155,7 @@ For ComfyUI_frontend development, you can ask coding assistants to use Playwrigh
##### Setup for Claude Code ##### Setup for Claude Code
After installing dependencies with `npm i`, the Playwright MCP server will be automatically available when you start Claude Code locally. After installing dependencies with `pnpm i`, the Playwright MCP server will be automatically available when you start Claude Code locally.
Here's how Claude Code can use the Playwright MCP server to inspect the interface of the local development server (assuming you're running the dev server at `localhost:5173`): Here's how Claude Code can use the Playwright MCP server to inspect the interface of the local development server (assuming you're running the dev server at `localhost:5173`):
@@ -210,14 +210,14 @@ Here's how Claude Code can use the Playwright MCP server to inspect the interfac
### Unit Tests ### Unit Tests
- `npm i` to install all dependencies - `pnpm i` to install all dependencies
- `npm run test:unit` to execute all unit tests - `pnpm test:unit` to execute all unit tests
### Component Tests ### Component Tests
Component tests verify Vue components in `src/components/`. Component tests verify Vue components in `src/components/`.
- `npm run test:component` to execute all component tests - `pnpm test:component` to execute all component tests
### Playwright Tests ### Playwright Tests
@@ -228,12 +228,12 @@ Playwright tests verify the whole app. See [browser_tests/README.md](browser_tes
Before submitting a PR, ensure all tests pass: Before submitting a PR, ensure all tests pass:
```bash ```bash
npm run test:unit pnpm test:unit
npm run test:component pnpm test:component
npm run test:browser pnpm test:browser
npm run typecheck pnpm typecheck
npm run lint pnpm lint
npm run format pnpm format
``` ```
## Code Style Guidelines ## Code Style Guidelines

View File

@@ -105,7 +105,7 @@ The alternative would have been breaking all existing extensions or staying with
Build the frontend for full functionality: Build the frontend for full functionality:
```bash ```bash
npm run build pnpm build
``` ```
For faster iteration during development, use watch mode: For faster iteration during development, use watch mode:

19797
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"dev:electron": "vite --config vite.electron.config.mts", "dev:electron": "vite --config vite.electron.config.mts",
"build": "npm run typecheck && vite build", "build": "pnpm typecheck && vite build",
"build:types": "vite build --config vite.types.config.mts && node scripts/prepare-types.js", "build:types": "vite build --config vite.types.config.mts && node scripts/prepare-types.js",
"zipdist": "node scripts/zipdist.js", "zipdist": "node scripts/zipdist.js",
"typecheck": "vue-tsc --noEmit", "typecheck": "vue-tsc --noEmit",
@@ -21,6 +21,7 @@
"test:browser": "npx playwright test", "test:browser": "npx playwright test",
"test:unit": "vitest run tests-ui/tests", "test:unit": "vitest run tests-ui/tests",
"test:component": "vitest run src/components/", "test:component": "vitest run src/components/",
"preinstall": "npx only-allow pnpm",
"prepare": "husky || true && git config blame.ignoreRevsFile .git-blame-ignore-revs || true", "prepare": "husky || true && git config blame.ignoreRevsFile .git-blame-ignore-revs || true",
"preview": "vite preview", "preview": "vite preview",
"lint": "eslint src --cache", "lint": "eslint src --cache",
@@ -45,6 +46,7 @@
"@pinia/testing": "^0.1.5", "@pinia/testing": "^0.1.5",
"@playwright/test": "^1.52.0", "@playwright/test": "^1.52.0",
"@storybook/addon-docs": "^9.1.1", "@storybook/addon-docs": "^9.1.1",
"@storybook/vue3": "^9.1.1",
"@storybook/vue3-vite": "^9.1.1", "@storybook/vue3-vite": "^9.1.1",
"@trivago/prettier-plugin-sort-imports": "^5.2.0", "@trivago/prettier-plugin-sort-imports": "^5.2.0",
"@types/dompurify": "^3.0.5", "@types/dompurify": "^3.0.5",
@@ -56,6 +58,7 @@
"@vue/test-utils": "^2.4.6", "@vue/test-utils": "^2.4.6",
"autoprefixer": "^10.4.19", "autoprefixer": "^10.4.19",
"chalk": "^5.3.0", "chalk": "^5.3.0",
"commander": "^14.0.0",
"eslint": "^9.12.0", "eslint": "^9.12.0",
"eslint-config-prettier": "^10.1.2", "eslint-config-prettier": "^10.1.2",
"eslint-plugin-prettier": "^5.2.6", "eslint-plugin-prettier": "^5.2.6",
@@ -67,11 +70,14 @@
"happy-dom": "^15.11.0", "happy-dom": "^15.11.0",
"husky": "^9.0.11", "husky": "^9.0.11",
"identity-obj-proxy": "^3.0.0", "identity-obj-proxy": "^3.0.0",
"ink": "^4.2.0",
"knip": "^5.62.0", "knip": "^5.62.0",
"lint-staged": "^15.2.7", "lint-staged": "^15.2.7",
"lucide-vue-next": "^0.540.0", "lucide-vue-next": "^0.540.0",
"postcss": "^8.4.39", "postcss": "^8.4.39",
"prettier": "^3.3.2", "prettier": "^3.3.2",
"react": "^18.3.1",
"react-reconciler": "^0.29.2",
"storybook": "^9.1.1", "storybook": "^9.1.1",
"tailwindcss": "^3.4.4", "tailwindcss": "^3.4.4",
"tsx": "^4.15.6", "tsx": "^4.15.6",
@@ -79,6 +85,7 @@
"typescript-eslint": "^8.0.0", "typescript-eslint": "^8.0.0",
"unplugin-icons": "^0.22.0", "unplugin-icons": "^0.22.0",
"unplugin-vue-components": "^0.28.0", "unplugin-vue-components": "^0.28.0",
"uuid": "^11.1.0",
"vite": "^5.4.19", "vite": "^5.4.19",
"vite-plugin-dts": "^4.3.0", "vite-plugin-dts": "^4.3.0",
"vite-plugin-html": "^3.2.2", "vite-plugin-html": "^3.2.2",
@@ -92,8 +99,14 @@
"@alloc/quick-lru": "^5.2.0", "@alloc/quick-lru": "^5.2.0",
"@atlaskit/pragmatic-drag-and-drop": "^1.3.1", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1",
"@comfyorg/comfyui-electron-types": "^0.4.43", "@comfyorg/comfyui-electron-types": "^0.4.43",
"@primeuix/forms": "0.0.2",
"@primeuix/styled": "0.3.2",
"@primeuix/utils": "^0.3.2",
"@primevue/core": "^4.2.5",
"@primevue/forms": "^4.2.5", "@primevue/forms": "^4.2.5",
"@primevue/icons": "4.2.5",
"@primevue/themes": "^4.2.5", "@primevue/themes": "^4.2.5",
"@sentry/core": "^10.5.0",
"@sentry/vue": "^8.48.0", "@sentry/vue": "^8.48.0",
"@tiptap/core": "^2.10.4", "@tiptap/core": "^2.10.4",
"@tiptap/extension-link": "^2.10.4", "@tiptap/extension-link": "^2.10.4",
@@ -113,8 +126,10 @@
"es-toolkit": "^1.39.9", "es-toolkit": "^1.39.9",
"extendable-media-recorder": "^9.2.27", "extendable-media-recorder": "^9.2.27",
"extendable-media-recorder-wav-encoder": "^7.0.129", "extendable-media-recorder-wav-encoder": "^7.0.129",
"fast-glob": "^3.3.3",
"firebase": "^11.6.0", "firebase": "^11.6.0",
"fuse.js": "^7.0.0", "fuse.js": "^7.0.0",
"glob": "^11.0.3",
"jsondiffpatch": "^0.6.0", "jsondiffpatch": "^0.6.0",
"loglevel": "^1.9.2", "loglevel": "^1.9.2",
"marked": "^15.0.11", "marked": "^15.0.11",

View File

@@ -90,8 +90,8 @@ export default defineConfig({
/* Run your local dev server before starting the tests */ /* Run your local dev server before starting the tests */
// webServer: { // webServer: {
// command: 'npm run start', // command: 'pnpm dev',
// url: 'http://127.0.0.1:3000', // url: 'http://127.0.0.1:5173',
// reuseExistingServer: !process.env.CI, // reuseExistingServer: !process.env.CI,
// }, // },
}) })

12504
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

15
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,15 @@
packages:
- apps/**
- packages/**
ignoredBuiltDependencies:
- '@firebase/util'
- protobufjs
- vue-demi
onlyBuiltDependencies:
- '@playwright/browser-chromium'
- '@playwright/browser-firefox'
- '@playwright/browser-webkit'
- esbuild
- oxc-resolver

View File

@@ -9,9 +9,9 @@
# Bash commands # Bash commands
- `npm run typecheck` Run the typechecker - `pnpm typecheck` Run the typechecker
- `npm run build` Build the project - `pnpm build` Build the project
- `npm run lint:fix` Run ESLint - `pnpm lint:fix` Run ESLint
# Code style # Code style

View File

@@ -152,7 +152,7 @@ Use GitHub actions to release normal versions.
### Pre-release ### Pre-release
The action directly translates `Version increment type` to the npm version command. `Pre-release ID (suffix)` is the option for the `--preid` argument. The action directly translates `Version increment type` to the pnpm version command. `Pre-release ID (suffix)` is the option for the `--preid` argument.
e.g. Use `prerelease` increment type to automatically bump the patch version and create a pre-release version. Subsequent runs of prerelease will update the prerelease version only. e.g. Use `prerelease` increment type to automatically bump the patch version and create a pre-release version. Subsequent runs of prerelease will update the prerelease version only.
Use `patch` when ready to remove the pre-release suffix. Use `patch` when ready to remove the pre-release suffix.

View File

@@ -79,7 +79,7 @@ const messages = {
#### Option A: Local Generation (Optional) #### Option A: Local Generation (Optional)
```bash ```bash
# Only if you have OpenAI API key configured # Only if you have OpenAI API key configured
npm run locale pnpm locale
``` ```
#### Option B: Let CI Handle It (Recommended) #### Option B: Let CI Handle It (Recommended)
@@ -90,8 +90,8 @@ npm run locale
### Step 3: Test Your Changes ### Step 3: Test Your Changes
```bash ```bash
npm run typecheck # Check for TypeScript errors pnpm typecheck # Check for TypeScript errors
npm run dev # Start development server pnpm dev # Start development server
``` ```
**Testing checklist:** **Testing checklist:**

View File

@@ -33,13 +33,13 @@ To run the tests locally:
```bash ```bash
# Run unit tests # Run unit tests
npm run test:unit pnpm test:unit
# Run unit tests in watch mode # Run unit tests in watch mode
npm run test:unit:dev pnpm test:unit:dev
# Run component tests with browser-native environment # Run component tests with browser-native environment
npm run test:component pnpm test:component
``` ```
Refer to the specific guides for more detailed information on each testing type. Refer to the specific guides for more detailed information on each testing type.

View File

@@ -18,13 +18,13 @@ litegraph/
```bash ```bash
# Run all litegraph tests # Run all litegraph tests
npm run test:unit -- tests-ui/tests/litegraph/ pnpm test:unit -- tests-ui/tests/litegraph/
# Run specific subdirectory # Run specific subdirectory
npm run test:unit -- tests-ui/tests/litegraph/core/ pnpm test:unit -- tests-ui/tests/litegraph/core/
# Run single test file # Run single test file
npm run test:unit -- tests-ui/tests/litegraph/core/LGraph.test.ts pnpm test:unit -- tests-ui/tests/litegraph/core/LGraph.test.ts
``` ```
## Migration Status ## Migration Status