淘宝npm镜像
淘宝npm镜像
@(博客)[npm, npminstall, cnpm, 加速]
之前用npm
安装package
实在是太慢了,网上找了
方法:https://npm.taobao.org/ 这是淘宝npm镜像。使用说明:
可以使用定制的 cnpm
(gzip 压缩支持) 命令行工具代替默认的 npm
:$ npm install -g cnpm --registry=https://registry.npm.taobao.org
然后你就可以用cnpm来代替npm了。
如:npm install -g vue-cli
可以改成:cnpm install -g vue-cli
但问题来了。由于cnpm
直接从淘宝服务器把package
下载下来,是一些.0.0.0xxx
,.0.0.1xxx
的目录,然后会有一些快捷方式目录,打开这些快捷方式(如gulp),进去之后会是对应的如.0.0.1@gulp
的文件夹,为什么会这样?如图:
先抛开这个问题,cnpm install moduleName
实际上是从淘宝服务器直接下载下来的。实际上还有另外一种npm
加速的方法:npm install moduleName --registry=https://registry.npm.taobao.org
,但是这种方法不是直接从淘宝服务器下载下来的,moduleName
还是从npm
服务器下载的,只不过下载的时候是通过了淘宝的加速。这种方法下载下来的文件目录就和直接用npm install moduleName
的目录是一样的。
回到刚刚那个问题,为什么从淘宝服务下载是一个.0.0.1xxx
的目录?这有什么区别吗?听说存在淘宝服务器的package
有被改动的嫌疑?
带着疑问,Google了一下。发现npm
与cnpm
的区别。npm
的安装策略与cnpm
的安装策略不一样。npm
安装之后的目录是树型结构的,是一个树的结构。而cnpm
它采用的是npminstall安装策略,npminstall
的目的是Make 'npm install' fast and easy.
。用npminstall
策略安装出来的目录就如上图所示,是一堆型如.0.0.1@vue
的目录,而当你打开软链目录的时候,会链接到相应的verison
@pkg
那里,就像指针一样,每个软链目录指向对应的verison
@pkg
目录。
以上是我的理解,不足之处,恳请指出~
参考:
https://segmentfault.com/q/1010000006950697/a-1020000006955968
http://cnodejs.org/topic/5753bd312420978970d4a629