[转+] npm 换源 npm 国内镜像 cnpm

原文网址: 给电脑换源 npm 国内镜像 cnpm

《[转+] npm 换源 npm 国内镜像 cnpm》

为什么要换源? npm 官方站点 http://www.npmjs.org/ 并没有被墙,但是下载第三方依赖包的速度让人着急啊!
就拿阿里云环境来说,有时 npm 一个包也需要耐心等待……等待过去也许是原地踏步,也许就是安装失败.
幸运的是,国内有几个镜像站点可以供我们使用

速度非常快,镜像站会实时更新,为我们节省了好多时间.如何给本机换源呢?
(1)[临时]通过 config 配置指向国内镜像源

# 配置指向源
# cnpmjs.org
$ npm config set registry http://registry.cnpmjs.org
# npm.taobao.org
$ npm config set registry http://registry.npm.taobao.org

(2)[临时]通过 npm 命令指定下载源

# 在安装时候临时指定
$ npm --registry http://registry.cnpmjs.org info express

(3)[linux]在配置文件 ~/.npmrc 文件写入源地址

//打开配置文件
nano ~/.npmrc
//写入配置文件
registry =https://registry.npm.taobao.org

推荐使用最后一种方法,一劳永逸,前面2钟方法都是临时改变包下载源.
如果你不想使用国内镜像站点,只需要将 写入 ~/.npmrc 的配置内容删除即可.
下面是我本地下载ejs包的截图,可以看到默认源地址指向了 cnpm
《[转+] npm 换源 npm 国内镜像 cnpm》

(4) 使用 cnpm 来替代 npm

npm install -g cnpm --registry=http://registry.npm.taobao.org

或者 (linux 专用)

alias cnpm="npm --registry=http://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=http://registry.npm.taobao.org/mirrors/node \
--userconfig=$HOME/.cnpmrc"

#Or alias it in .bashrc or .zshrc
$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=http://registry.npm.taobao.org \
  --cache=$HOME/.npm/.cache/cnpm \
  --disturl=http://registry.npm.taobao.org/mirrors/node \
  --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

通过 cnpm 命令行, 你可以快速同步任意模块:

cnpm sync koa connect mocha

呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 web 页面:
例如我想马上同步 koa, 直接打开浏览器: http://npm.taobao.org/sync/koa
或者你是命令行控, 通过 open 命令打开:

open http://npm.taobao.org/sync/koa

如果你安装的模块依赖了 C++ 模块, 需要编译, 肯定会通过 node-gyp 来编译, node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载, 于是大家又会吐槽, 怎么 npm 安装这么慢…
好吧, 于是又要提到 --disturl参数, 通过中国镜像来下载:

npm install microtime \
  --registry=http://registry.npm.taobao.org \
  --disturl=http://npm.taobao.org/mirrors/node

再次要提到 cnpm cli, 它已经默认将 --registry--disturl 都配置好了, 谁用谁知道 . 写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?

nodejs 源码路径
对于在淘宝上下载nodejs 源码指定的地址是: https://npm.taobao.org/dist

直接更改源文件中的配置文件地址来更改加载路径
~/node_modules/npm/lib/config/defaults.js
Line : 181
registry : "https://registry.npmjs.org/"
将这个注册地址 更改为: https://registry.npm.taobao.org/

参考网站:

    原文作者:多厘
    原文地址: https://segmentfault.com/a/1190000011327493
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞