cnpmのaliasを使用します

3543 ワード

国内で直接npmを使ってモジュールをダウンロードするのはいつもとても遅くて、甚だしきに至ってはダウンロードが失敗して、宝を洗うcnpmを使ってスピードを高めることができます.
cnpmモジュールを直接使用してダウンロードする依存度に問題が発生することがあります.(cnpmダウンロードの依存ディレクトリ構造はnpmと異なると言われています.)
より良い方法は、タオバオのnpmソース、すなわちパラメータ--registry=https://registry.npm.taobao.orgを使用することである.
cnpm公式サイトはalias方式を提供しています.
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"

# Or alias it in .bashrc or .zshrc
$ echo '
#alias for cnpm
alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
問題はこのコマンドはwindowsをサポートしていません.別のalias方式を探すしかないです.
Powershellを例にとると、Set-Aliasコマンドを持って別名を設定し、構成ファイルに自動的に別名をロードすると記載されています.この記事を参照してPowerShellでAliasesを使用することができます.
また問題が来ました.Set-Aliasですが、この方法はステートメントをサポートしないべきです.functionまたはprogramにaliasを設定するしかないです.
つまり、次の文はだめです.set-alias cnpm "npm --registry=https://registry.npm.taobao.org"set-alias cnpm npmしか使えません.
まず関数を定義してからSet-Aliasに行ってもいいです.
function Start-npmWithTaobao {
    $argList = $args -Join ' '
    Start-Process -FilePath 'npm' -ArgumentList "--registry=https://registry.npm.taobao.org $argList"  -NoNewWindow 
}
Set-Alias cnpm Start-npmWithTaobao 
面倒くさいですね.nrmモジュールは直接に各種のnpmソースを切り替えることができます.
$ npm install -g nrm

$ nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  eu ----- http://registry.npmjs.eu/
  au ----- http://registry.npmjs.org.au/
  sl ----- http://npm.strongloop.com/
  nj ----- https://registry.nodejitsu.com/

$ nrm help // show help
$ nrm list // show all registries
$ nrm use cnpm // switch to cnpm
$ nrm home // go to a registry home page