V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangkui
V2EX  ›  Node.js

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

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

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

    22 条回复    2023-11-23 01:16:05 +08:00
    DOLLOR
        1
    DOLLOR  
       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 ,不过配环境很容易
    zhangkui
        5
    zhangkui  
    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   ·   实用小工具   ·   1405 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:29 · PVG 01:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.