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

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

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

    执行 npm ls -g --depth=0

    我的是:

    ⋊> ~ npm ls -g --depth=0                                                21:32:19
    /usr/local/lib
    ├── caniuse-cmd@1.3.0
    ├── fanyi@0.3.1
    ├── generator-esnm@0.1.7
    ├── hexo-cli@1.0.1
    ├── image-cli@0.0.26
    ├── kanpai@0.1.7
    ├── n@2.1.0
    ├── node-make@0.2.1
    ├── npm@3.7.2
    ├── nwjs@1.1.1
    ├── saikou-cli@0.1.1
    ├── speed-test@1.7.0
    ├── toka@0.4.32
    ├── tooling@0.11.0
    ├── vmd@1.24.1
    └── yo@1.6.0
    
    23 条回复    2016-02-16 16:32:09 +08:00
    djyde
        1
    djyde  
       2016-02-15 21:36:34 +08:00
    ```
    ├── bower@1.6.5
    ├── browserify@12.0.1
    ├── cown@0.1.1 -> /Users/randy/node/cown
    ├── devtool@1.3.0
    ├── electron-prebuilt@0.34.2
    ├── eslint@1.10.3
    ├── eslint-plugin-html@1.2.0
    ├── express-generator@4.13.1
    ├── gitbook-cli@1.0.1
    ├── grunt@0.4.5
    ├── grunt-cli@0.1.13
    ├── gulp@3.9.0
    ├── hexo-cli@0.2.0
    ├── hexo-generator-feed@1.0.3 -> /Users/randy/node/hexo-generator-feed
    ├── hexo-site@0.0.0 -> /Users/randy/frontend/jsnext-podcast
    ├── hotel@0.4.0
    ├── http-server@0.8.5
    ├── image-cli@0.0.2
    ├── jade@1.11.0
    ├── lodash-cli@3.10.1
    ├── midman@0.1.0 -> /Users/randy/node/midman
    ├── mocha@2.3.4
    ├── node-earthlive@0.1.0 -> /Users/randy/node/node-earthlive
    ├── node-red@0.12.1
    ├── node-red-contrib-brain@0.1.4 -> /Users/randy/node-red-contrib/node-red-contrib-brain
    ├── npm@2.14.7
    ├── pm2@0.15.10
    ├── react-native-cli@0.1.7
    ├── revue@1.2.5 -> /Users/randy/frontend/revue
    ├── semantic-release-cli@1.3.3
    ├── surge@0.17.4
    ├── tldr@1.3.0
    ├── tooling@0.0.26
    ├── vibe@0.1.0 -> /Users/randy/kiwi/Vibe
    ├── vue-cli@1.3.0
    ├── vuex-devtools@0.1.0 -> /Users/randy/frontend/vuex-devtools
    ├── watchify@3.6.1
    ├── webpack@1.12.12
    ├── webpack-dev-server@1.14.1
    └── xo@0.12.1
    ```
    sox
        2
    sox  
    OP
       2016-02-15 21:40:17 +08:00
    @djyde 爆炸💥
    jin5354
        3
    jin5354  
       2016-02-15 21:43:57 +08:00
    ├── asar@0.9.1
    ├── babel-eslint@4.1.8
    ├── electron-packager@5.2.1
    ├── electron-prebuilt@0.36.5
    ├── eslint@1.10.3
    ├── eslint-plugin-react@3.16.1
    ├── express-generator@4.13.1
    ├── hexo-cli@0.2.0
    ├── npm@2.14.7
    └── roll@1.1.0
    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
    ├── coffee-script@1.10.0
    ├── less2sass@1.0.2
    ├── mocha@2.3.4
    ├── npm@3.3.12
    └── vcdelta@0.1.0
    Pastsong
        14
    Pastsong  
       2016-02-15 22:21:18 +08:00
    ├── bower@1.7.2
    ├── browser-sync@2.11.0
    ├── browserify@12.0.1
    ├── cordova@5.4.1
    ├── csslint@0.10.0
    ├── docco@0.7.0
    ├── eslint@1.10.3
    ├── generator-keystone@0.3.12
    ├── gulp@3.9.0
    ├── hexo-cli@0.2.0
    ├── htmlhint@0.9.12
    ├── ionic@1.7.13
    ├── ios-deploy@1.8.3
    ├── ios-sim@5.0.6
    ├── jade@1.11.0
    ├── nan@2.1.0
    ├── node-gyp@3.2.1
    ├── node-sass@3.4.2
    ├── npm@3.6.0
    ├── polyserve@0.5.0
    ├── tslint@3.2.0
    ├── typescript@1.7.3
    ├── vue-cli@1.3.0
    ├── webpack@1.12.9
    └── yo@1.5.1
    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
    ├── bower@1.7.7
    ├── csslint@0.10.0
    ├── eslint@2.0.0
    ├── gitbook-cli@1.0.1
    ├── grunt-cli@0.1.13
    ├── gulp-cli@1.2.1
    ├── hexo-cli@1.0.1
    ├── http-server@0.8.5
    ├── npm@3.6.0
    ├── tldr@1.5.1
    └── webpack@1.12.13
    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
    啊,忘记 po 了 =.=

    /usr/local/lib
    ├── babel@5.8.23
    ├── bower@1.6.5
    ├── coffee-script@1.10.0
    ├── express-generator@4.13.1
    ├── generator-express@2.9.3
    ├── generator-react-webpack-redux@0.5.0
    ├── grunt-cli@0.1.13
    ├── gulp@3.9.0
    ├── karma-cli@0.1.1
    ├── mocha@2.3.3
    ├── node-gyp@3.0.3
    ├── npm@3.5.3
    ├── npm-check-updates@2.5.6
    ├── react-tools@0.13.3
    ├── stylus@0.52.4
    ├── supervisor@0.9.1
    ├── trash-cli@1.2.0
    ├── tsd@0.6.5
    ├── typescript@1.7.3
    ├── typings@0.6.8
    ├── uglify-js@2.4.24
    ├── webpack@1.12.11
    ├── webpack-dev-server@1.14.1
    └── yo@1.6.0
    zhjits
        21
    zhjits  
       2016-02-16 11:05:24 +08:00
    /usr/local/lib
    ├── bower@1.7.7
    ├── cnpm@3.4.0
    └── npm@3.6.0

    尽量不全局装东西,因为重装系统之前我的 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   ·   实用小工具   ·   3500 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:49 · PVG 08:49 · LAX 17:49 · JFK 20:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.