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

npm 如何通过 package.json 安装依赖最新版

  •  
  •   Andy1999 · 2015-11-01 17:14:33 +08:00 via iPhone · 12412 次点击
    这是一个创建于 3310 天前的主题,其中的信息可能已经有所发展或是发生改变。
    下载源码, package.json 里面都明确规定了版本号,但是 npm install 安装的都不是最新版。
    需要用户手动执行 npm i xxx@提供的版本号才能正常使用。
    请问这个问题该怎么解决?
    10 条回复    2015-11-02 10:22:11 +08:00
    arfaWong
        1
    arfaWong  
       2015-11-01 17:44:51 +08:00 via Android
    把 package. json 的版本号改为空字符串试试?
    guchengf
        2
    guchengf  
       2015-11-01 17:47:36 +08:00
    当然不能直接安装最新版,不然怎么保证兼容性。。。
    如果你想要升级,同时能确保升级以后可以正常工作的话,就把对应的包的版本改成 "*" ,然后
    npm update --save 就好了
    Andy1999
        3
    Andy1999  
    OP
       2015-11-01 17:50:24 +08:00 via iPhone
    @guchengf 目前 package 包给出的是正常可用的版本,我要更新这些依赖只能通过 rm -rf node_modules 然后再 npm install 就能获取到最新版了
    但是我不想每次更新都删掉 node_modules 这样效率太低了 有没有办法在不删除 node_modules 的情况下对这些依赖全部更新到 package 里面的版本?
    aivier
        4
    aivier  
       2015-11-01 18:04:47 +08:00
    “ my_module ” : "latest"
    这个吧
    guchengf
        5
    guchengf  
       2015-11-01 18:16:03 +08:00
    @Andy1999 你的意思是 package 定义的依赖比你本地的要新吗?
    那样 npm update 不行吗?
    Andy1999
        6
    Andy1999  
    OP
       2015-11-01 18:21:24 +08:00 via iPhone
    @guchengf 的确 npm update 不行
    只有 rm 掉 node_modules 再 npm install 才可以
    Septembers
        7
    Septembers  
       2015-11-01 22:20:51 +08:00
    ibigbug
        8
    ibigbug  
       2015-11-02 02:28:32 +08:00
    这种问题还是去提到讨论 node 的地方吧。。比如 cnodejs
    youxiachai
        9
    youxiachai  
       2015-11-02 09:25:05 +08:00
    ^x.xx.xx

    就能保证大版本里头,patch 是最新的了...

    注意 ^
    Niphor
        10
    Niphor  
       2015-11-02 10:22:11 +08:00
    LZ 不怕 update 了,代码跑步起来,按楼上的方法,把版本都改成 "*"就是了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2847 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.