fix(backend/build): bundle 外に @tensorflow/tfjs-node を出す (#17501)

`@tensorflow/tfjs-node` はネイティブバイナリを含むパッケージで、rolldown bundle
に取り込まれると、bundle 後の `__dirname` 解決により `@mapbox/node-pre-gyp` の
`find()` がパッケージ root の `package.json` を見失い、たまたまヒットする
`packages/backend/package.json` を validate しようとして `is not node-pre-gyp
ready` Error を永続的に吐く問題があった。

`sharp` / `re2` / `@napi-rs/*` 等の同性質のネイティブモジュールは既に
`externalModules` に登録されているため、同じ扱いで `@tensorflow/tfjs-node` も
external 化することで、ランタイムでは通常通り node_modules から解決され、
node-pre-gyp の path 解決も正しく動作する。

再現条件: NSFW 判定機能(`sensitiveMediaDetection !== 'none'`)を有効にした
インスタンスで、起動後の画像処理ごとに `AiService.detectSensitive` →
`await import('@tensorflow/tfjs-node')` が走るたびに発生。

機能影響: なし(NSFW 判定機能は維持)。エラーログのノイズが解消される。

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
SASAPIYO (SASAGAWA Kiyoshi) 2026-05-27 19:35:25 +09:00 committed by GitHub
commit 6836fc15c7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 0 deletions

View file

@ -8,6 +8,7 @@
### Server
- Enhance: リモートノートクリーニングジョブのスキップ処理のパフォーマンス改善
- Fix: backend バンドルで `@tensorflow/tfjs-node` を external に含めず、起動時に `@mapbox/node-pre-gyp``find()` が backend の package.json を誤検出して `is not node-pre-gyp ready` エラーを永続的に吐く問題を修正
## 2026.5.4

View file

@ -66,6 +66,7 @@ export default defineConfig((args) => {
'@nestjs/microservices/microservices-module',
'@nestjs/microservices',
/^@napi-rs\/.*/,
'@tensorflow/tfjs-node',
'mock-aws-s3',
'aws-sdk',
'nock',