-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
考虑用 n-api 替代 nan,增加预构建过的 addon 产物 #111
Comments
N-API 现在还是没保证 |
其实你说的 1 这个问题使用了 N-API 也没法保证,如果是 major 版本之内的,构建环境和线上如果能保持 major 版本一致的话目前这个构建产物也是通用的(依靠 NODE_MODULE_VERSION 宏保证) 而对于如果构建环境和线上环境是跨 major 版本的,N-API 也不保证跨 major 版本的 abi 兼容吧,还是需要更新构建环境。 |
对于第二个问题,目前我这边使用 关于这个我其实在关注 |
我理解这是 n-api 要解决的根本问题,应该是能保证的吧?
我看到的一些实践里面目前都是这样用的,在支持 n-api 的 Node.js 版本里面也没有碰到大问题(可能有些小问题、bug),相应的不用再根据 major 版本分发产物了。 |
棒,之前没仔细看 |
This comment has been minimized.
This comment has been minimized.
上面是我理解有误, 不过还是那个问题,我们在 addon 里还会涉及到 如果不解决这一层的抽象,N-API 对于 xprofiler 的意义就比较有限了。 |
目前 xprofiler 的预编译产物地址:
安装的时候指定 npm install egg-xtransit --save --xprofiler_binary_host_mirror=https://npmmirror.com/mirrors/xprofiler |
先关闭了,有其他问题欢迎探讨。 |
optional Dependencies 现在包管理器都应该支持的挺不错了: evanw/esbuild#789 (comment) |
不是 CLI 的问题,是 npm-os 还没支持 node_module 宏,esbuild 本身只是一个 go binary 它是无所谓的,addon 除了 os 外还关注 runtime abi. |
现在项目里面使用的是 nan,也就是在部署的过程中,需要用 node-gyp 来构建产物。这在有些场景下可能会导致一些麻烦,比如:
现在主流的 Node.js LTS 版本对 n-api 的支持已经比较完善了,如果能用 n-api 替代 nan 的话,问题 1 就能被解决(但可能还是需要确保其他代码 abi 稳定);如果能再进一步直接在 npm 包里面分发构建产物的话,开发者也就不需要准备编译工具了。
The text was updated successfully, but these errors were encountered: