sqlite 编译需要 NODE_MODULE_VERSION 76,但是找不到对应 node 版本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MuscleOf2016
0D
V2EX    Node.js

sqlite 编译需要 NODE_MODULE_VERSION 76,但是找不到对应 node 版本

  •  
  •   MuscleOf2016 2022-04-02 23:57:52 +08:00 7916 次点击
    这是一个创建于 1298 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据 node 官网的版本记录: https://nodejs.org/zh-cn/download/releases/ 直接从 NODE_MODULE_VERSION 72 ,跳过到了 79 ,那现在提示 NODE_MODULE_VERSION 76 ,我该咋办。。。实现没办法了。。

    14 条回复    2022-04-13 14:53:15 +08:00
    Kasumi20
        1
    Kasumi20  
       2022-04-03 00:03:58 +08:00
    WFT ? SQLite 是 ANSI-C 源代码。它必须先编译成机器代码才能使用。本文是编译 SQLite 的各种方法的指南。

    https://www.sqlite.org/howtocompile.html
    MuscleOf2016
        2
    MuscleOf2016  
    OP
       2022-04-03 00:05:04 +08:00
    @Kasumi20 少打了 是 node 的 better-sqlite3
    Kasumi20
        3
    Kasumi20  
       2022-04-03 00:12:49 +08:00
    MuscleOf2016
        4
    MuscleOf2016  
    OP
       2022-04-03 00:15:57 +08:00
    @Kasumi20 已经安装了全局的 node-gyp ,
    ```
    Uncaught Error: The module '\\?\D:\better-sqlite3\build\better_sqlite3.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 79. This version of Node.js requires NODE_MODULE_VERSION 76. Please try re-compiling or re-installing the module (for instance, using npm rebuildornpm install).
    ```
    我很奇怪,提示我需要 76 版本,但是我找不到 76 对应的 node 版本号
    skies457
        5
    skies457  
       2022-04-03 00:55:16 +08:00 via iPhone
    @MuscleOf2016 这说的是你的 nodejs 是 76 ,但库是 79 编译的,所以你需要 79 的 nodejs
    littlepanzh
        6
    littlepanzh  
       2022-04-03 00:59:57 +08:00 via iPhone
    76 是 electron 编译的 node 版本,报错不是告诉你了,rebuild 一下

    https://www.npmjs.com/package/electron-releases
    cweijan
        7
    cweijan  
       2022-04-03 01:05:45 +08:00
    是因为 sqlite 内置了一个编译后的.node 文件, 和你的 nodejs 版本不兼容, 如果你安装了 node-gyp 的话, 就会 npm install 时使用 node-gyp 重新编译, 使用 node-gyp 需要 gcc 编译工具, 如果是 windows, 通过执行`npm install -g windows-build-tools`安装.
    magicdawn
        8
    magicdawn  
       2022-04-04 21:28:01 +08:00
    magicdawn
        9
    magicdawn  
       2022-04-04 21:33:32 +08:00
    magicdawn
        10
    magicdawn  
       2022-04-04 21:37:07 +08:00
    建议选一个支持 N-API 的包, 这样不用重新 build (包使用的 napi 版本 < runtime napi 版本即可)

    mapbox/node-sqlite3 已经使用了 N-API
    MuscleOf2016
        11
    MuscleOf2016  
    OP
       2022-04-05 22:50:13 +08:00
    @magicdawn 意思 76 对应 9.0.0-beta.1 版本的 nodejs ,那我现在是不是没办法用这个版本去编译了,找不到地方去下载了。。
    MuscleOf2016
        12
    MuscleOf2016  
    OP
       2022-04-05 22:52:53 +08:00
    @magicdawn
    建议选一个支持 N-API 的包, 这样不用重新 build (包使用的 napi 版本 < runtime napi 版本即可)
    --------------
    指定 target: '8.0.0',napi 57 的也是不行。。
    magicdawn
        13
    magicdawn  
       2022-04-05 22:55:41 +08:00
    NODE_MODULE_VERSION 在头文件里定义的,
    用 electron 的头文件不行?

    cd /path-to-module/
    HOME=~/.electron-gyp node-gyp rebuild --target=1.2.3 --arch=x64 --dist-url=https://electronjs.org/headers
    wangtian2020
        14
    wangtian2020  
       2022-04-13 14:53:15 +08:00
    遇到过相同的问题 ,当时是想在 electron 上用 sqlite ,一开始瞄准了要用 better-sqlite3
    当时忙活了一下午,各种 rebuild 失败死活装不上,issue 看了个遍也没找到办法

    然后就直接用 sqlite3 了,用 promise 封住一下,照样用
    "sqlite3": "^5.0.2",
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3741 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:50 PVG 08:50 LAX 17:50 JFK 20:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86