V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chenliangngng
V2EX  ›  前端开发

ubuntu 的 node_modules 怎么拿到 windows 使用

  •  
  •   chenliangngng · 98 天前 · 1547 次点击
    这是一个创建于 98 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个项目在公司内网有 npm 私有包必须要在公司内网安装依赖,我在 ubuntu 内网 npm install 以后,node_modules 里面会有大量软链接,这些在我拷贝到公网的 windows 电脑会全部失效,如果不使用虚拟机请问有什么办法解决吗

    12 条回复    2024-07-30 16:32:53 +08:00
    saranz
        1
    saranz  
       98 天前
    package.json 是干什么用的?
    leegradyllljjjj
        2
    leegradyllljjjj  
       98 天前   ❤️ 3
    复制-粘贴,插上电源静置 2 年后就能用了
    FakerLeung
        3
    FakerLeung  
       98 天前
    有些包分系统的,windows 不一定都能用
    mdn
        4
    mdn  
       98 天前
    package.json package-lock.json 文件复制过去安装,最好 nodejs 版本一致
    少部分非 js 包需要区分系统平台,复制过去并不能直接使用
    0o0O0o0O0o
        5
    0o0O0o0O0o  
       98 天前
    应该是没有通用方案,和软链接无关:
    https://github.com/npm/feedback/discussions/648#discussioncomment-2690230

    跑个 windows 虚拟机吧
    rabbbit
        6
    rabbbit  
       98 天前
    试一下 Verdaccio ,看看能不能把内网的包下来传上去
    GPLer
        7
    GPLer  
       98 天前
    1. 方法一,在本地搭建 npm 私服 verdaccio ,上游地址添加公司 npm 私服地址,本地 npm registry 临时设置为 verdaccio 地址,然后安装依赖,verdaccio 会缓存下相关依赖,然后将 verdaccio 复制到出去,后续安装依赖都从 verdaccio 安装即可。
    2. 方法二,ubuntu 搞个 windows 虚拟机,在 windows 虚拟机里安装依赖,然后打包复制,相同系统版本架构应该是能用的。
    另外,建议不要违规操作,内网的东西就不应该搞到公网去。
    uxstone
        8
    uxstone  
       98 天前
    代码和人有一个能跑就行
    zythum
        9
    zythum  
       98 天前
    就算软链接搞定了,其他事不一定的。install 的时候会根据系统,node 版本做不同的安装配置,比如有些下载不同的二进制依赖包,有些甚至是现编译的。并且 bin 的安装方式在 windows 下合 linux 下也是不一样的。
    你可以尝试下面几种方式:
    1. 公网使用 windows 的 linux 子系统安装同版本的 node 执行。
    2. 在内网用 windows 并且用同一个版本的 node 去 install , 然后考到公网的 windows 执行。
    3. 在内网的 ubuntu 用 docker 打镜像,把 node_module 都打到镜像里,拷贝镜像,公网 windows 也用 docker 跑。
    frencis107
        10
    frencis107  
       98 天前   ❤️ 1
    直接用 docker ,最简单方便的方法
    xuhai951753
        11
    xuhai951753  
       96 天前
    我想知道如果有 bindings 、wasm 啥的不还是得重下?复制也没用吧。
    bzw875
        12
    bzw875  
       95 天前
    node_modules 有软连接是因为用 yarn 、pnpm 的安装依赖的原因。
    删除 node_modules 文件夹,使用 npm install 就可以获取一个没有软连接的 node_modules
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:45 · PVG 21:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.