CNode

如何统计 Node addon 模块兼容情况 ?

问答
PPana发布于11 年前最后回复11 年前5 回复4753 浏览0 收藏

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)

I
i5ting#1·11 年前

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

I
i5ting#2·11 年前

剩下的更新就编译呗

A
alsotang#3·11 年前

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

P
Pana#4·11 年前

@fengmk2 有啥看法呢

F
fengmk2#5·11 年前
引用 Pana@fengmk2 有啥看法呢

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

参与回复
登录后即可参与回复。登录