varHarrie / varharrie.github.io

:blue_book: Personal blog site based on github issues.
https://varharrie.github.io
MIT License
3.66k stars 548 forks source link

设置淘宝源的npm #11

Open varHarrie opened 7 years ago

varHarrie commented 7 years ago

非常感谢淘宝提供的NPM镜像,使国内下载NPM包速度有了极大的提升。

为了便于使用,官方还提供了一个cnpm命令行工具,通过npm install -g cnpm --registry=https://registry.npm.taobao.org安装,变可以用cnpm代替npm安装node模块

但是,由于cnpm安装机制跟npm上有区别,会导致了诸如babel全家桶一类的包安装错误(不知道现在还有没有这个问题)

为了提高包安装速度,也尝试过使用前段时间Facebook推出的yarn,速度上确实有明显提升,功能上也几乎与npm等同。只可惜,处于安全考虑,它不支持一些安装过程中带执行脚步的包。依然不是完美的替代品

下面提供一种,既能保持完整的npm功能,又能保证国内下载速度等方法

npm的参数registry提供了更改下载源的方法,使用npm安装任意包的时候可以添加--registry=https://registry.npm.taobao.org,以切换到淘宝源,下载速度上跟cnpm无异。

但是,每次安装都需要添加一大段的命令,既难记又不方便。

在linux和macos中,可以通过alias添加别名命令:

alias cnpm="npm --registry=https://registry.npm.taobao.org"

在windows中并没有这样的方法,这里提供一种实现方法:

  1. 在任意目录下创建一个文件夹,用来存放下面三个文件,例如我创建了一个c:\bin目录
  2. 在该目录下建立文件aliases,内容如下
    ls=dir /ONE $*
    cd=cd /d $*
    cnpm=npm $* --registry=https://registry.npm.taobao.org

    这个文件用于定义别名命令,你也可以添加其他命令

  3. 在该目录建立文件cmd_autorun.cmd,内容如下
    @echo off
    cls
    doskey /macrofile=c:\bin\aliases

    这个文件用于注册这些命令,注意将macrofile的路径改成你自己的

  4. 在该目录下建立set_cmd_autorun.reg,内容如下
    
    REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "Autorun"="c:\bin\cmd_autorun.cmd"


这个文件用于开机自动注册命令,**注意将Autorun路径改成你自己的**
5. 然后运行`cmd_autorun.cmd`和`set_cmd_autorun.reg`文件
6. 之后再也不用管这些文件了,并且保证这些文件不会被删除