lint spawns node --check for 49 files one after another (about 10 s on Windows)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- リファクタリング
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript, node.js
- 領域
- performance, tooling
調査の方向性
site/lint.mjs:69-80から始め、特に73行目のexecFileSync呼び出しを確認し、スクリプトファイルの収集方法とエラーの報告方法を読んでください。npm run -s lintを実行して現在の所要時間を測り、その後npm testで動作を確認してください。完了の条件は、チェックがos.availableParallelism()を上限とするプールで並行実行され、エラーがファイル順に維持され、マルチコアマシンでlintが大幅に高速化することです。
索引モデルが issue の本文から書いたものです。
説明
Summary
lint.mjs runs a blocking node --check subprocess per script file in sequence, which makes it the slowest step of npm run check.
Where
site/lint.mjs:69-80(theexecFileSync(process.execPath, ["--check", file])call at:73)
Details
Measured on a Windows dev machine: npm run -s lint 10.8 s vs test 5.1 s, validate 4.8 s, check-added 4.5 s. A single node --check is about 400 ms there; on Linux CI it is about 40-60 ms per file. Cost grows linearly with the number of scripts.
Impact
About a third of every local npm run check, and a smaller share of each CI run.
Steps to reproduce
- Time
npm run -s lint. - Time
node --check site/build.mjsin the same shell and multiply by 49.
Suggested fix
Run the checks in parallel with promisified execFile and a pool capped at os.availableParallelism(), then report errors in file order. Behaviour stays identical.
Acceptance criteria
- Same errors in the same order
- Lint wall time drops substantially on a multi-core machine
Getting started
- Relevant files:
site/lint.mjs - Run the tests:
npm test; the full local gate isnpm run check(Node 22+, no install step) - Related docs:
CONTRIBUTING.md,site/README.md
Filed by repo-audit/full-audit at 4adb944. Severity: low. Effort: S. audit-key: performance|site/lint.mjs|scriptFiles-check
- 主要言語
- JavaScript
- スター
- 58
- フォーク
- 15
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 12
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TMHSDigital/Free-Game-Dev-Assets のほかの issue
-
enhancement good first issue priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
TMHSDigital/Free-Game-Dev-Assets#270 ·
メンテナーはふだん 1 日以内に返信
-
documentation priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
TMHSDigital/Free-Game-Dev-Assets#269 ·
メンテナーはふだん 1 日以内に返信
-
good first issue priority: low tests
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
TMHSDigital/Free-Game-Dev-Assets#267 ·
メンテナーはふだん 1 日以内に返信
-
good first issue priority: low tests
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
TMHSDigital/Free-Game-Dev-Assets#266 ·
メンテナーはふだん 1 日以内に返信
TMHSDigital/Free-Game-Dev-Assets の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/TypeScript#65370 ·
メンテナーはふだん 1 日以内に返信
-
metrics priority: medium
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
LearningCircuit/local-deep-research#8336 ·
メンテナーはふだん 1 日以内に返信
-
ace bug yaml
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
svelte: whitespace-only edit leaves an empty todo, edits not trimmed, filter not restored on reloadオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
agentic-workflows
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
githubnext/gh-cao#20316 ·
メンテナーはふだん 1 日以内に返信