Infer `nodedir` for headerfiles from execPath
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- node.js
- 领域
- build-system
调研方向
先阅读 lib/configure.js 和 lib/find-node-directory.js,然后跟踪 npm_config_nodedir 当前的获取和使用方式。确定从 process.execPath 开始遍历是否能够可靠地定位 Node 头文件且不会产生误报;完成的标准是项目已就实现范围达成一致,并为标准和非标准安装提供验证。
由索引模型根据 Issue 内容生成。
描述
- Node Version: latest 18 / 20
- Platform: Linux arm64/x86_64
- Compiler: gcc
- Module: anything
(Didn't follow for the format as this is a general capability request, for any version)
Following from https://github.com/nodejs/node-gyp/issues/812 and reading through some of the code in lib/configure.js and https://github.com/nodejs/node-gyp/blob/main/lib/find-node-directory.js, could the general strategy of inferring the nodedir through a traversal from process.execPath work to automatically find headers files even when using non-standard installation locations of node?
In other words, infer the npm_config_nodedir from the execPath, instead of requiring users set it explicitly:
export npm_config_nodedir="/my/node/install/path/18.x.x/"
node-gyp ...
My main hesitation is I don't know if this could accidentally end up with false-positive identification in a lot of the cases for some reason, or otherwise break some ecosystem usage. It could also be behind a flag or variable like --infer-nodedir / npm_config_infer_nodedir if that's a concern, though of course preferably it could be a default.
- 主要语言
- Python
- 星标
- 10.7k
- 派生
- 1.9k
- 平均合并
- 1 天 4 小时
- 30 天内合并 PR
- 5
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nodejs/node-gyp 的其他 Issue
-
dependencies github_actions
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 4/5 3-5 天 新手友好度 48/100
-
难度 4/5 3-5 天 新手友好度 48/100
-
MSYS2
难度 4/5 3-5 天 新手友好度 35/100
-
难度 4/5 3-5 天 新手友好度 48/100
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
stephrobert/dsoxlab#238 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
sublimehq/package_control#1780 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 70/100
nwg-piotr/nwg-displays#145 ·