`undici` is leaking into browser environment
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript, next.js, typescript, webpack
- 领域
- build-system, tooling, web-dev
调研方向
先从 package.json 中兼容浏览器的导出配置入手,并将其与 next dev 生成的导入跟踪进行比较。然后检查所引用的 next.config.js、tsconfig.json 和 rollup.config.js,以及 agentCompatibility.js 和 agentCompatibility-browser.js。完成的标志是,TypeScript 和 Next.js 的浏览器构建不再通过服务器路径解析 undici 依赖项。
由索引模型根据 Issue 内容生成。
描述
Description
@dmitrizagidulin and I have been investigating an issue importing http-client into a browser context. The issue is coming from the undici library, which is not compatible with the browser. We noticed that there are provisions in the package.json to exclude problematic files from browser-compatible exports, but it does not seem to fix the issue. We are indirectly using this library as a second-order dependency in a TypeScript + Next.js application, but it seems we will need to make modifications to this library to get it to work.
Solutions tried
- Overriding the
webpackrules innext.config.jsto use the same file redirection thathttp-clientuses in itspackage.json - Instructing TypeScript (via
tsconfig.json) to use the same file replacement ashttp-client:{ "compilerOptions": { "baseUrl": "./", "paths": { "@digitalbazaar/http-client/lib/agentCompatibility.js": ["node_modules/@digitalbazaar/http-client/lib/agentCompatibility-browser.js"], "@digitalcredentials/security-document-loader/node_modules/@digitalbazaar/http-client/lib/agentCompatibility.js": ["node_modules/@digitalbazaar/http-client/lib/agentCompatibility-browser.js"] } } - Modifying environment-based export directives in
package.json - Modifying configuration in
rollup.config.js
Reproduction steps
- Install application in a
TypeScript+Next.jsapplication with different combinations of solutions listed above - Run
next dev - Observe error
Error stack
This is the undici error:
This is the import trace (you'll notice that agentCompatibility.js was not replaced by agentCompatibility-browser.js, as specified in package.json):
Tooling
TypeScriptNext.js
Next steps
We think the best approach will involve a direct PR to this repo that fixes browser exports in this setup.
- 主要语言
- JavaScript
- 星标
- 2
- 派生
- 8
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
digitalbazaar/http-client 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 25/100
digitalbazaar/http-client#44 ·
-
Keep an eye on `node:undici` (or similar) exposing `undici` in `node` and remove `undici` dependency未关闭
难度 3/5 1-2 天 新手友好度 30/100
digitalbazaar/http-client#43 ·
-
难度 5/5 一周以上 新手友好度 15/100
digitalbazaar/http-client#37 ·
-
难度 3/5 1-2 天 新手友好度 45/100
digitalbazaar/http-client#33 ·
-
enhancement
难度 4/5 3-5 天 新手友好度 35/100
digitalbazaar/http-client#30 · 1 条评论 ·
查看 digitalbazaar/http-client 的全部 Issue
相似的 Issue
-
triage-needed
难度 2/5 1-3 小时 新手友好度 76/100
MicrosoftDocs/edge-developer#3970 ·
维护者通常 1 天内回复
-
agent/scanner hive/hosted-available-lke648397-260827-5n31 quality testing
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
PWA stores a grouped number entry 1000x too small in German locale可能已有人在做 @Minhal128 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
Add: YRF Music未关闭check:passed feeds:add
难度 2/5 1-3 小时 新手友好度 68/100
iptv-org/database#37102 · 2 条评论 ·
维护者通常 9 天内回复
-
[workshop-sim] Repair: Add a fallback sample .lock.yml to the Agentic Workflows Intro Activity 1未关闭feedback simulation workshop
难度 2/5 1-3 小时 新手友好度 72/100
githubnext/gh-aw-workshop#4328 ·
维护者通常 1 天内回复