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

npm 包 安装,重装 的问题

  •  
  •   eromoe · 2016-06-14 11:43:19 +08:00 · 8434 次点击
    这是一个创建于 3114 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近学 react redux 之类的东西, npm 用的比较多,发现很多问题

    1.npm install 有时候会出一堆错,完成后重新运行 npm install 又什么错都没有了(python 的 pip 就会自动安装没装过的包,虽然还是会出错,就是能看哪些错的。 但是 npm 给我的感觉不是这样,经常第二次什么错都不报了)

    2.有时候 npm install 项目可以运行,有的时候不行,可能的解决办法是

    * 再执行 npm install 后 莫名其妙又可以了
    * 再执行 npm install 后不行,要删除 node_modules 重新 npm install (可能要重来多次)
    * 添加某个包后,项目出问题 npm remove xxx 没效果(还有可能出现别的错误)
    * npm remove xxx , npm install xxx 整个项目就起不来了,又要删 node_modules 重装。。。

    3.npm 给我的感觉是 把 node_modules 删了以后,每次都重新下载,都没有用之前下过的缓存,非常低效,每次出问题重新安装都慢死了,很难受。。。。

    希望大触来给说明说明。。。我实在搞不懂这些奇葩的问题是怎么发生的。。。


    PS :环境是 windows 8.1 , npm 源 已经改为淘宝 (改~/.npmrc 文件的方法)
    第 1 条附言  ·  2016-06-14 13:15:38 +08:00
    因为有些包安装出错都提示叫我升级到最新的,所以都是最新的了

    E:\Project\blog>npm -v
    3.8.3

    E:\Project\blog>node -v
    v6.2.0
    15 条回复    2016-06-23 14:02:01 +08:00
    fds
        1
    fds  
       2016-06-14 11:59:32 +08:00
    我的经验是 npm install 失败后,需要指定具体失败模块 npm install xxx 来重新安装。
    如果涉及二进制文件编译的,还有个 npm rebuild 命令。

    * npm remove xxx , npm install xxx 整个项目就起不来了
    这种问题我没遇到过。是不是项目依赖有什么冲突。

    最好加下 npm 版本号。
    mgcnrx11
        2
    mgcnrx11  
       2016-06-14 12:02:39 +08:00
    ~/.npm 目录有缓存的( Windows 好像在 AppData 里面),慢是因为他要连官网去 check 更新,动不动就几百 M 的 modules 重新复制解包,以及那神奇的进度条拖慢了
    eromoe
        3
    eromoe  
    OP
       2016-06-14 12:48:44 +08:00
    @fds npm install 经常会有什么编译失败之类的,但是貌似问题不大,有的时候能把项目跑起来,跑步起来就重新 npm install, 确实错误信息 会有一些写着 npm build 的,但是好像不是这个问题

    @mgcnrx11 唉。。。这安装和删除的速度实在让人受不了啊。。。。
    learnshare
        4
    learnshare  
       2016-06-14 12:57:18 +08:00
    npm install --loglevel silly
    能看到完整的日志,比较方便查找安装失败的原因。
    不过一般都是整个 mode_modules 删掉,重新来。因为偶尔也会遇到安装正常,但无法执行的问题。
    eromoe
        5
    eromoe  
    OP
       2016-06-14 13:19:15 +08:00
    @learnshare 我现在碰到问题也只能删 node_modules 重装
    就是觉得 node 社区这么大,怎么连一个包管理都有问题。。。这问题超难受。。。碰到大项目等半天。。。结果还是不行,删掉重来 T T
    fds
        6
    fds  
       2016-06-14 13:49:06 +08:00
    warning 没什么关系, error 要重视起来。
    你既然能重现,那应该在项目跑不起来的时候看看到底是哪里出了问题,所有 node_modules 都有源代码的,直接在里面加些 log 就行。时间紧的话可以删了重装,时间宽裕的情况下应该仔细研究下,避免今后再遇到。

    另外 node6 太新了,现在 node4 才是 lts 。公司项目用 npm 部署没遇到你这些问题。
    learnshare
        7
    learnshare  
       2016-06-14 13:54:50 +08:00
    @eromoe 其实 npm/git 本身出的问题并不多,主要坑在网络环境上。
    scarlex
        8
    scarlex  
       2016-06-14 13:55:19 +08:00
    觉得慢的话你可以试试淘宝源
    https://npm.taobao.org/
    eromoe
        9
    eromoe  
    OP
       2016-06-14 13:58:55 +08:00
    @scarlex 请看主题,我一开始就上淘宝源了
    eromoe
        10
    eromoe  
    OP
       2016-06-14 14:10:06 +08:00
    @fds 之前也是用 4 的 lts ,前 2 天碰到项目,安装完起不来, npm 提示是请把 node 升级到最新,如果还是出错那就联系作者,之类的意思,然后 github 里看到很多人都是用 5.0 以上的,有些包有的人说升级到 5.6 就没问题了
    所以我就升了
    eromoe
        11
    eromoe  
    OP
       2016-06-14 14:11:06 +08:00
    补充上面的,后来发现不是版本的问题,还是 node_modules 的问题,因为删了 2 次都出错,还以为是我装错了。。。
    第三次删了装就好了。。。
    youxiachai
        12
    youxiachai  
       2016-06-14 14:14:37 +08:00
    用 npm...在 windows 很容易碰到路径过深的问题....
    youxiachai
        13
    youxiachai  
       2016-06-14 14:16:04 +08:00
    还有..用淘宝源..不意味着你的网络一定好......

    保险起见...npm -d 走起吧..起码刷刷的看上去蛮有成就感..
    mgcnrx11
        14
    mgcnrx11  
       2016-06-14 14:37:49 +08:00 via iPhone
    用淘宝源但遇到一些要从 npm 之外的地方下载包的情况也是会失败的,如 phantomjs ,遇到了还得深入研究设置专门的源
    xuzicn
        15
    xuzicn  
       2016-06-23 14:02:01 +08:00
    https://github.com/xuzicn/share/blob/master/%E4%BB%8ERN%E7%9C%8B%E7%AC%AC%E4%B8%89%E6%96%B9%E5%8C%85%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86.md

    这是我之前在一个群里分享的 RN 在 npm install 里的坑。有简略的剖析 npm 的运行机制,可能比较难啃,可以留言交流
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.