原文网址: 给电脑换源 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
(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/
参考网站:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。