V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
beichenshao
V2EX  ›  问与答

关于 esbuild 的一个问题: golang 是怎么编译为 npm 库的?

  •  
  •   beichenshao · Aug 11, 2022 · 2056 views
    This topic created in 1366 days ago, the information mentioned may be changed or developed.
    我搜索了一下,在 2020 年有 v 友问了相同的问题,
    但是回答的人寥寥无几,可能是因为发到了 node 的节点,
    这个问题根本原因还是需要会 go 的朋友帮忙解答下,

    我简单看了下 esbuild 的官网,
    一开始以为是使用 wasm 的方式,但官网提示不推荐这种方式,
    那大概率也不是通过 wasm 来实现的,

    有没有会 go 的朋友帮忙解答下,golang 是怎么编译为 npm 库的?
    Supplement 1  ·  Sep 27, 2022
    如果在 2022 年以后翻到这个帖子,恭喜你,我已经帮你踩坑了,

    答案在这里: https://lyn.one/2020/09/11/rust-napi

    这里解释了如何通过 Rust 来编写一个 npm 库,

    简单引用一下核心:“不同平台的 NATIVE ADDON 通过不同的 NPM PACKAGE 分发,最近前端很火的新一代构建工具 esbuild 就采用了这种方式。每一个 native addon 对应一个 npm package 。然后通过 postinstall 脚本去安装当前系统对应的 native addon package 。”
    3 replies    2022-08-11 09:33:56 +08:00
    learningman
        1
    learningman  
       Aug 11, 2022 via Android
    package.json 里面指定一下 files 啥都能传上去,不同平台对应一个不同的包,里面放编译好的二进制不就好了
    bokchoys
        2
    bokchoys  
       Aug 11, 2022
    stoluoyu
        3
    stoluoyu  
       Aug 11, 2022
    去他的 npm 看了下,esbuild 依赖了很多不同的 esbuild-xxx 包,exbuild-xxx 都是各个平台的二进制版本,更详细的构建流程就得多翻翻他的 github 仓库了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 224ms · UTC 20:36 · PVG 04:36 · LAX 13:36 · JFK 16:36
    ♥ Do have faith in what you're doing.