前言
因為眾所周知的原因,使用node,官方NPM倉庫安裝依賴包是個看人品的事情,不過有萬能的淘寶,所以需要部分調整就可以避免這些原因。(以下內容osx, centos下測試通過)
淘寶鏡像基本使用
首先是版本管理,NODE更新迭代較快,推薦使用NVM來進行版本管理,因為NVM支持鏡像選項,所以,簡單設置環境變量即可:
export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs
其次是NPM倉庫:
npm --registry=https://registry.npm.taobao.org install -g cnpm
然后使用cnpm來處理一切包安裝即可,不過,如果提交包到官方倉庫,只能使用NPM,實在不行就開VPN。。。。。
最后是前端測試經常會用到的幾個依賴, chromedriver, phantomjs, selinium
export PHANTOMJS_CDNURL=http://npm.taobao.org/mirrors/phantomjs export CHROMEDRIVER_CDNURL=http://npm.taobao.org/mirrors/chromedriver export SELENIUM_CDNURL=http://npm.taobao.org/mirrorss/selenium
大部分場景足以應付,不過也有例外。
使用angular配套的protractor進行E2E測試時,selenium, chromedriver是通過自帶的webdriver-manager來管理,目測貌似不支持環境變量的方式,所以需要麻煩一點:
# 路徑為/usr/local/lib/node_modules/protractor/bin/
cat webdriver-manager \
| gawk '{gsub(/https:\/\/chromedriver.storage.googleapis.com\//,"http://npm.taobao.org/mirrors/chromedriver/", $0); print $0 }' \
| gawk '{gsub(/https:\/\/selenium-release.storage.googleapis.com\//,"http://npm.taobao.org/mirrors/selenium/", $0); print $0 }' \
> driver-manager
chmod u+x driver-manager
ln -s /usr/local/lib/node_modules/protractor/bin/driver-manager /usr/local/bin/driver-manager
以上為自己使用所做,可能略顯繁瑣。基於自帶的webdriver-manager,替換掉相應路徑為鏡像路徑,生成新的driver-manager,然后世界就安靜了。
