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

如何更好地管理和处理 npm 相关依赖及更新?

  •  
  •   imjeen · 2016-04-27 13:13:05 +08:00 · 3766 次点击
    这是一个创建于 2913 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 依赖资源

    由于国内外的网络问题,可以通过 cnpm 替代 npm 安装依赖包。

    • 依赖关系

    npm@3 版本 已进行完全重写了。

    Flat, flat, flat!

    不同于 npm@2 , npm@3 安装所依赖包会最大限度地偏平化。详见更多官方版本说明

    • 依赖更新

    npm outdated 来查看依赖包版本可更新状态。

    npm update 升级依赖包,同时 npm 可以自身升级 npm i npm -g


    那么,问题来了。

    不可能每次每个项目都分别 npm install 重复的依赖包,可以放置在全局使用。

    那该如何更好地管理全局依赖包?同时更新也会带来不兼容的问题,有些依赖包安装在全局这样做好吗?

    当然局部可以再次安装全局的依赖包,那么如果有局部依赖包,就没使用到全局依赖包。

    随着项目(包括处理服务端和客户端对文件和资源)的膨胀和复杂度增大,以及项目增多,处理 npm install 依赖包 时,我们真的需要停下来思考。


    以上是个人的一点点思考和疑虑,有更多意见和建议,欢迎提出来,我们一起来探讨。

    更重要的是,并不是什么都要依赖包。 left-pads 事件已经再次警告我们要处理好依赖。

    3 条回复    2016-05-03 12:34:28 +08:00
    atian25
        1
    atian25  
       2016-04-29 13:01:01 +08:00
    - 全局依赖肯定是不可行的, 每个项目需要的依赖版本不一致
    - 阿里这边的实践是, 用死马写的 autod 小工具来更新
    - 有个 npmcheck 也是类似的功能.
    atian25
        2
    atian25  
       2016-04-29 13:01:46 +08:00
    安装速度方面, 苏千的 npminstall 库, 能提速非常多.
    imjeen
        3
    imjeen  
    OP
       2016-05-03 12:34:28 +08:00
    @atian25 国内安装依赖包时的下载速度确实是个问题。

    目前基本都是局部依赖包,同时对必要的依赖包进行更新, push 到 git 仓库后,相关的成员也要手动更新&重新安装。

    我的想法是能想把项目依赖包安装到开发人员共享的服务器上,这样不必每个人都手动操作。

    就像 `npm link` 一样把全局依赖包 link 到局部上,那么全局的变动同时也会反映到局部上。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5466 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 05:55 · PVG 13:55 · LAX 22:55 · JFK 01:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.