V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sox
V2EX  ›  问与答

你安装了哪些 npm 命令行程序? npm ls -g --depth=0

  •  
  •   sox · 2016-02-15 21:31:37 +08:00 · 3528 次点击
    这是一个创建于 3204 天前的主题,其中的信息可能已经有所发展或是发生改变。

    执行 npm ls -g --depth=0

    我的是:

    ⋊> ~ npm ls -g --depth=0                                                21:32:19
    /usr/local/lib
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    └── [email protected]
    
    23 条回复    2016-02-16 16:32:09 +08:00
    djyde
        1
    djyde  
       2016-02-15 21:36:34 +08:00
    ```
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] -> /Users/randy/node/cown
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] -> /Users/randy/node/hexo-generator-feed
    ├── [email protected] -> /Users/randy/frontend/jsnext-podcast
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] -> /Users/randy/node/midman
    ├── [email protected]
    ├── [email protected] -> /Users/randy/node/node-earthlive
    ├── [email protected]
    ├── [email protected] -> /Users/randy/node-red-contrib/node-red-contrib-brain
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] -> /Users/randy/frontend/revue
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] -> /Users/randy/kiwi/Vibe
    ├── [email protected]
    ├── [email protected] -> /Users/randy/frontend/vuex-devtools
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    └── [email protected]
    ```
    sox
        2
    sox  
    OP
       2016-02-15 21:40:17 +08:00
    @djyde 爆炸💥
    jin5354
        3
    jin5354  
       2016-02-15 21:43:57 +08:00
    djyde
        4
    djyde  
       2016-02-15 21:44:00 +08:00
    @sox 你竟然不是用 nvm
    sox
        5
    sox  
    OP
       2016-02-15 21:46:23 +08:00
    @djyde nvm 全局安装的东西会在不同版本的 node_modules 里,可以设置?
    breeswish
        6
    breeswish  
       2016-02-15 21:46:38 +08:00
    @djyde 为什么要用 nvm 呀,直接使用最高版本的 node 似乎没遇到什么问题
    sox
        7
    sox  
    OP
       2016-02-15 21:47:50 +08:00
    @breeswish nvm 主要是不用装 node 吧 233
    djyde
        8
    djyde  
       2016-02-15 21:57:55 +08:00
    @breeswish

    1. 从官方网站下载 distribution 没有 nvm install 方便

    2. node 装在 /usr/ 里会有各种权限坑,比如需要 `sudo npm install ... `. 而 nvm 的 node 安装在 home 里。
    sox
        9
    sox  
    OP
       2016-02-15 22:01:06 +08:00
    @djyde 所以我直接 sudo chown -R username /usr/local/lib 😂
    djyde
        10
    djyde  
       2016-02-15 22:13:38 +08:00
    @breeswish

    3. 公司的历史项目用 0.12.x, 新项目用 4.2.x, 我自己的项目用 latest 。不用 nvm ,你说咋整。。。
    breeswish
        11
    breeswish  
       2016-02-15 22:16:22 +08:00
    @sox :-) 好吧,平时用着 OS X 天然没这个问题,-g 也不需要 sudo ;而服务器上项目里需要命令行(比如 webpack/bower )的时候都会写在项目 dependencies 里,这样 npm run xxx 时候也可以直接写命令执行,不需要路径写全

    话说 distribution 的问题感觉包管理就可以搞定啦, CentOS 和 Ubuntu 上都有官方的 4.x/5.x 的源
    breeswish
        12
    breeswish  
       2016-02-15 22:16:59 +08:00
    @djyde node 向下兼容的呀..
    plqws
        13
    plqws  
       2016-02-15 22:18:39 +08:00
    C:\Program Files\nodejs
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    ├── [email protected]
    └── [email protected]
    sodatea
        15
    sodatea  
       2016-02-15 22:23:32 +08:00
    @breeswish Node v1 以后都是遵守 semantic versioning 的,两个大版本之间必然有不兼容
    sox
        16
    sox  
    OP
       2016-02-15 22:29:49 +08:00
    @djyde 我现在是 n 4.2.4 && npm install npm@3 -g 😂
    sox
        17
    sox  
    OP
       2016-02-15 22:35:17 +08:00
    @breeswish 比如我要写个 library 大多数情况都要考虑 0.12.x/4.x/5.x 版本的兼容情况。。
    paicha
        18
    paicha  
       2016-02-16 00:28:49 +08:00
    breeswish
        19
    breeswish  
       2016-02-16 10:52:55 +08:00
    @sodatea 改的都是小地方,用流行库(和最新版本)的话基本不会有 0.12.x 兼容而 4.x / 5.x 不兼容情况..
    曾经把 4 年前一个 0.8.x 上运行的项目用最新的 5.x.x 跑完全正常..


    @sox 不管 addons 的话..要是按照 0.12.x 兼容写法写的话要写出 4.x/5.x 不兼容我觉得也是比较困难的 ;-)
    breeswish
        20
    breeswish  
       2016-02-16 10:55:49 +08:00
    zhjits
        21
    zhjits  
       2016-02-16 11:05:24 +08:00
    /usr/local/lib
    ├── [email protected]
    ├── [email protected]
    └── [email protected]

    尽量不全局装东西,因为重装系统之前我的 npm 依赖全部是乱套的……
    sodatea
        22
    sodatea  
       2016-02-16 15:09:28 +08:00   ❤️ 1
    @breeswish
    你看一下这个链接就知道 node v4 改动多大了…… https://github.com/nodejs/node/wiki/API-changes-between-v0.10-and-v4 稍微复杂一点的、用到底层特性多一点的项目迁移起来肯定都会有问题的,你感觉不到是因为你不碰底层只用流行库。

    node v4 和 v5 的不兼容倒没那么多,但 npm 3 和 2 的差别太大,如果不靠 nvm 来隔离,根本就没办法让那些旧项目跑起来。

    而且,流行库也不一定都能及时跟进的,就说我在 GitHub 上维护的一个 stars 上千的项目 csscomb.js https://github.com/csscomb/csscomb.js
    直到最近我接手后才兼容到 npm 3 ,花了我小半个星期才搞定。而 npm 3 进入稳定版已经半年了。

    追新肯定是有代价的,碰到问题了你就知道 nvm 是多么有必要了。
    breeswish
        23
    breeswish  
       2016-02-16 16:32:09 +08:00
    @sodatea 非常感谢,你说的很有道理 :-)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1217 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.