node-gyp 让我知道前端不止有 js - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
027creed
V2EX    Node.js

node-gyp 让我知道前端不止有 js

  •  
  •   027creed 2023-11-07 15:16:37 +08:00 3594 次点击
    这是一个创建于 749 天前的主题,其中的信息可能已经有所发展或是发生改变。

    被折磨了两天 win 环境, 下载了 Pythonvs 最后还是rebuild失败。我放弃了! 项目用 sequelize -> node-sqlite3 ,rebuild 有时成功有时失败,完全玄学。

    22 条回复    2023-11-23 01:16:05 +08:00
    AV1
        1
    AV1  
       2023-11-07 15:36:57 +08:00
    你肯定还不知道 node-sass ,这曾经是无数前端开发者的噩梦。
    node 调用 C/C++写的插件就会遇到这种情况,经常需要自己用本地的 C/C++环境去编译这些插件。
    所以用第三方库时还是尽量找 JS 、wasm 形式的,省心一些。
    miniaoes
        2
    miniaoes  
       2023-11-07 15:40:49 +08:00
    @DOLLOR 刚工作的时候被 node-sass 折磨过一次,现在记忆还很深刻。
    murmur
        3
    murmur  
       2023-11-07 15:42:17 +08:00
    还是 less 好
    kawaiidora
        4
    kawaiidora  
       2023-11-07 15:44:39 +08:00 via Android
    以后还会有 rust ,不过配环境很容易
    027creed
        5
    027creed  
    OP
       2023-11-07 15:46:36 +08:00
    @DOLLOR 我当然知道 比如 karma, webpack , node-sass, node-sqlite3
    darklinden
        6
    darklinden  
       2023-11-07 15:54:53 +08:00
    napi-rs 写起来很简单,编译起来简单,用起来也简单
    缺点是写多了测多了 rust 就不想写 node 了
    FrankFang128
        7
    FrankFang128  
       2023-11-07 15:56:32 +08:00
    用 wsl2
    laters
        8
    laters  
       2023-11-07 18:30:28 +08:00
    node-sass 纯拉吉
    coolcoffee
        9
    coolcoffee  
       2023-11-07 18:38:56 +08:00
    上一个 opencv 的项目让我放弃了 node ,Linux 没问题但是 Windows 上死活编译不成功。 然后改 python 了。
    netnr
        10
    netnr  
       2023-11-07 18:43:11 +08:00 via Android
    如果是 node-sqlite 可以直接引用 sql.js 不受 node-gyp 折磨,还有个结巴分词也是折磨
    buffzty
        11
    buffzty  
       2023-11-07 19:01:16 +08:00
    绝大多数人编程遇到的最大困难就是搭环境 能把环境搭好 后面的学习 开发都很简单
    ColdBird
        12
    ColdBird  
       2023-11-07 19:35:20 +08:00
    node-sass 经常需要 rebuild
    flyqie
        13
    flyqie  
       2023-11-07 19:36:42 +08:00 via Android
    @DOLLOR #1

    node-sass 的噩梦不就是来自于 node-gyp 吗。。
    jackmod
        14
    jackmod  
       2023-11-07 19:42:34 +08:00
    这类跨平台的工具可以塞到 docker 里,比如 vscode 的 devcontainer 系列套件
    mxT52CRuqR6o5
        15
    mxT52CRuqR6o5  
       2023-11-07 19:44:04 +08:00
    webpack 有 native 依赖吗?
    hervey0424
        16
    hervey0424  
       2023-11-08 10:42:40 +08:00
    这个逼玩意就没有一次安装顺利得, 不是缺 c++库就是却 python, 明明安装了还是不行, 这个电脑好使另一个就不好使了, 换了 less 之后省心多了
    MENGKE
        17
    MENGKE  
       2023-11-08 10:50:08 +08:00
    @miniaoes 我也是哈哈哈,当时没办法,去同事电脑上拷贝 node_modules
    weijancc
        18
    weijancc  
       2023-11-08 11:05:46 +08:00
    windows 折腾 node-gyp 真的蛮累的, node-sqlite3 对一些 node 版本有预编译的二进制文件, 就无需自己编译了, 你可以搜搜看
    dc2002007
        19
    dc2002007  
       2023-11-08 13:51:10 +08:00
    我认为所有处理人机交互的软件都属于前端,而你理解的只是狭义上的浏览器前端
    wu67
        20
    wu67  
       2023-11-08 14:18:57 +08:00
    出现这种情况, 一般是对应的二进制依赖项没有匹配当前 node.js 版本的预编译包

    所以 node.js 用 lts 的, 特别是发布了一段时间之后的 lts 版本, 而对应依赖项用最近发布的版本, 一般不会有问题, 直接就下载完事了
    wangtian2020
        21
    wangtian2020  
       2023-11-10 16:03:10 +08:00
    node-sass 的话,现在全都用 dart-sass ( npm 名 sass )平替了,除非怕事懒狗动不了项目依赖,改个依赖就完事了,项目一点都不需要改动

    说到 node-sqlite3 我就又起反应了,当时想用 better-sqlite3 死活构建不成功,只能退回去用不支持 promise 的 node-sqlite3 自己封装成 promise
    fengbjhqs
        22
    fengbjhqs  
       2023-11-23 01:16:05 +08:00 via Android
    node-sass 和 sqlite3 ,淘宝都有编译好的二进制文件,直接下载用,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 01:52 PVG 09:52 LAX 17:52 JFK 20:52
    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