如何统计 Node addon 模块兼容情况 ?
发布于 9 年前 作者 Pana 3795 次浏览 最后一次编辑是 8 年前 来自 问答

Node.js 每个包含v8升级的版本, 都会broke 部分 addon 模块, 如果能够知道每个模块, 对各个node 版本的支持情况应该会有很大帮助. 如何统计似乎是一个比较复杂的问题, 大家都来提下意见

  1. 如何知道某个模块是 addon 模块 是否依赖于NAN模块 只要依赖nan 就是c++模块 是否有c++代码 太慢, 但最靠谱 是否有binding.gyp 文件

  2. 如何知道某个模块的某个版本对node 的支持情况 ? 通过 nan 判断 ? 通过engine 字段判断 但是这个可能不准确 直接安装测试, 需要多平台, 多版本测试, 非常重的实现, 但结果应该比较准确

  3. 如何统计addon 模块的依赖模块, 以及他们的依赖模块

云模块

之所以会有升级问题是因为模块对 nan的依赖是固定的, 加入nan实现对不同v8的兼容, 提供了稳定的api, 那如果nan作为一个云端模块的话, 将会大大解决该问题. 所谓的云端模块即安装的时候到云端获取最新(或者指定)的nan模块

个人对NPM 的设计原理不太清楚, 不知道云模块概念是否违反了某些基本常识, 或根本不现实.

5 回复

把版本指定死就好了,不要最新就好

剩下的更新就编译呗

自动化的话,感觉我也没有什么思路。 大家目前正在分布式地手工解决这个问题,不仅相关 addon 的维护者会重新就 4.0 进行改进。依赖这些模块的使用者,在升 node 的时候,也会让问题暴露出来,然后反馈 issue 给对应的维护者。

@fengmk2 有啥看法呢

@Pana 目前官方的做法挺好的,不是简单去更新一下nan的版本就行的,还得去修改模块本身的代码的。最好都用js模块 自豪地采用 CNodeJS ionic

回到顶部