Esbuild Web Worker Type Safety and Redundant tsconfig.worker.json
- 主要言語
- TypeScript
- スター
- 27k
- フォーク
- 11.8k
- 平均マージ
- 14時間 23分
- マージ済み PR(30日)
- 162
説明
### Command
build
### Is this a regression?
- [ ] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
_No response_
### Description
When using esbuild as the bundler for Angular projects, the support for web workers appears misleading in terms of type safety:
- In the previous webpack-based build setup, web workers had proper TypeScript type checking at build time.
- Currently, esbuild does not type-check web workers during build time. This is not documented or clearly communicated, leading to a false sense of correctness.
- Additionally, creating a project with a web worker generates a `tsconfig.worker.json`, which seems redundant because esbuild doesn't use it for type-checking. Also `builder` contains the `webWorkerTsConfig` option in the schema, as I understand it, this doesn't affect anything. This can confuse developers into thinking their web worker code is properly validated.
**Expected Behavior**
Either esbuild-based builder should perform type checking on web worker files, or there should be clear documentation and/or warnings that type-checking is not performed on workers.
**Current Behavior**
- No build-time type checking for worker code.
- Misleading tsconfig.worker.json is generated, giving false confidence in type safety.
### Minimal Reproduction
1. Generate a new Angular project with esbuild (Angular CLI 18+).
2. Add a web worker via ng generate web-worker.
3. Introduce a type error in the worker file.
4. Run ng build – no type error is reported.
### Exception or Error
```text
```
### Your Environment
```text
Any version with esbuild bundler.
```
### Anything else relevant?
_No response_
コントリビューションガイド
調査の方向性
まず、説明されている Angular CLI esbuild ワークフローを再現します。web worker を生成し、型エラーを追加して、ng build を実行します。生成された tsconfig.worker.json と、builder スキーマの webWorkerTsConfig オプションを確認します。worker の型チェック動作が修正されるか明確に文書化され、誤解を招く設定が対処されていれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- angular, typescript
- 領域
- build-system, cli
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100