-
Notifications
You must be signed in to change notification settings - Fork 21
refactor(webapp): refractor the entire webapp project into pnpm workspace #1534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Let maintainers know that an action is required on their side
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the entire webapp project from a flat npm structure into a pnpm workspace monorepo to improve dependency management and build performance.
- Migrates from npm to pnpm with workspace configuration
- Reorganizes projects into logical categories (apps, packages, tools)
- Centralizes build outputs to a unified
dist/
directory
Reviewed Changes
Copilot reviewed 7 out of 376 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
webapp/apps/recording-player/package.json | Updates package name and dependencies to use workspace protocol |
webapp/apps/gateway-ui/tsconfig.json | Adds ESNext.Disposable to TypeScript lib configuration |
webapp/apps/gateway-ui/package.json | New package.json with Angular dependencies and TypeScript 5.5.4 |
webapp/apps/gateway-ui/biome.json | New Biome configuration for linting and formatting |
webapp/apps/gateway-ui/angular.json | Updates output path to centralized dist directory |
webapp/README.md | Complete rewrite with pnpm workspace documentation |
.github/workflows/ci.yml | Refactors CI from separate jobs to unified pnpm workflow |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
TL;DR
Only ~15 files actually changed. Everything else below is path relocations with no code diffs.
Relocations (no code changes)
Files to Review (~15 actual changes)
CI Configuration (1 file)
.github/workflows/ci.yml
Replaced 2 jobs with 1 unified job
npm → pnpm
Updated artifact paths
Workspace Setup (3 new files)
webapp/pnpm-workspace.yaml
— NEW; defines workspace structurewebapp/pnpm-lock.yaml
— NEW; replacespackage-lock.json
webapp/package.json
— NEW; adds root workspace scriptsBuild Configuration (3 files)
webapp/apps/gateway-ui/angular.json
outputPath
:"client"
→"../../dist/gateway-ui"
webapp/apps/recording-player/vite.config.ts
outDir
:"../player"
→"../../dist/recording-player"
webapp/apps/recording-player/src/streamers/webm.ts
Updated imports:
"../../../../tools/shadow-player"
→"@devolutions/shadow-player"
Package Manifests (3 files)
webapp/apps/gateway-ui/package.json
Added TypeScript ~5.5.4 (for Angular compatibility)
updated Telnet package and terminal shared dependency because of Pnpm peer dependency rules
webapp/apps/recording-player/package.json
Uses
workspace:*
protocol for internal packageswebapp/packages/shadow-player/package.json
Package renamed to
@devolutions/shadow-player
Documentation (3 files)
webapp/README.md
— updated with pnpm workspace docswebapp/docs/cookbook.md
— updated with pnpm workspace docsSuggested Review Flow (optional)
CI:
.github/workflows/ci.yml
Workspace: new pnpm files at
webapp/
Build outputs: Angular + Vite config changes
Package manifests: types, rename, and
workspace:*
Docs: skim for accuracy