V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
JustLookBy
V2EX  ›  Node.js

nodejs 怎样优雅的依赖同个模块的俩个版本?

  •  
  •   JustLookBy · Jul 26, 2021 · 4341 views
    This topic created in 1739 days ago, the information mentioned may be changed or developed.

    ##起因##

    用的 vue.js +elementui, 然后想用新版本的 datepicker 组件,其他的用旧版本。新版本已经有已知的 bug 了,不适合全局用。

    ##问题## 所以想问下如何同时引用俩个版本的模块?其中一个版本其实只要一个组件。

    ##已经尝试的方案## 用 npm i element-ui-latest@npm:element-ui 这个命令可以让新旧版本同时存在,并且引用,但是引用的时候出错。原因是 datepicker 这组件的引用有用到 element-ui这个模块前缀,而不是全用相对位置。

    Supplement 1  ·  Jul 26, 2021
    看来没啥好办法,曲线救国了一下。
    全局用新版本,有 bug 的组件用了旧版本。 向旧兼容没出现问题
    8 replies    2021-07-27 10:23:54 +08:00
    chaoFanExcellent
        1
    chaoFanExcellent  
       Jul 26, 2021
    你把新版本的 datepicker 看源码自己写一个组件,其他的用旧版本就行了
    JustLookBy
        2
    JustLookBy  
    OP
       Jul 26, 2021
    @chaoFanExcellent 啊这优雅嘛🙈
    libook
        3
    libook  
       Jul 26, 2021
    如果每个组件之间互相独立,那么你可以直接把相应组件的代码复制到本地项目里,重命名成另一个组件名。

    如果组件之间耦合较高,那么可以了解一下微前端。

    最优雅的方式是只用一个版本。
    renmu123
        4
    renmu123  
       Jul 26, 2021 via Android
    旧版本的 bug 不比新版本多?
    ik0r
        5
    ik0r  
       Jul 26, 2021
    yarn 的别名了解一下?
    A 模块版本 1, 同时给 A 模块起一个别名 B, 使用版本 2
    JustLookBy
        7
    JustLookBy  
    OP
       Jul 26, 2021
    @libook 耦合度太高了,不好 copy,我是在已有项目上加个小功能而已,微前端应该不适用😂
    @renmu123 项目是旧版本搭建的,没啥 bug😏。

    @Jeremial 你这个和我尝试的那个方案是一样的 `npm i element-ui-latest@npm:element-ui`,行不通
    wednesdayco
        8
    wednesdayco  
       Jul 27, 2021
    “两个版本”这底子就不优雅了,不如把老版本升级?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1018 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 115ms · UTC 18:30 · PVG 02:30 · LAX 11:30 · JFK 14:30
    ♥ Do have faith in what you're doing.