关于开发工具的两个简介(工作和家庭)

时间:2014-11-25 22:09:20

标签: git bash macos npm

我有一个类似下面的场景,我需要一个解决方案。

方案
我每天都使用Android Package Manager,nodeJS(npm),Homebrew等开发工具。我需要在家里和工作中使用它,但在工作中我在代理后面,所以我必须在每个工具上设置代理,例如

npm config set proxy http://proxy:10

但是当我在家工作时,我不需要它,因为代理并没有提供世界上最快的带宽:)我说,它很慢而且我不想浪费时间下载10倍的包裹。

问题
有没有解决方案在这些工具上有两个不同的配置文件?或者我每次更改位置(工作/家庭)时都需要编写一个bash脚本来更改这些代理设置?

如果可能,或者您对熟悉的情况有过一些经验,请告诉我 谢谢!

2 个答案:

答案 0 :(得分:3)

总而言之,我最终得到了一个我在下面添加的bash解决方案:

# Proxy
alias proxyChecker='env | grep -i proxy'

function enableProxy() {
    export http_proxy=http://my_proxy.com:port
    export {https,ftp,rsync}_proxy=$http_proxy
    export {HTTP,HTTPS,FTP,RSYNC}_PROXY=$http_proxy
    echo -e  "Proxy environment variable set."

    npm config set proxy $http_proxy
    npm config set https-proxy $http_proxy
    echo -e  "npm proxy set."

    git config --global http.proxy $http_proxy
    git config --global https.proxy $http_proxy
    echo -e  "git global proxy set."
}

function disableProxy() {
    unset {http,https,ftp,rsync}_proxy
    unset {HTTP,HTTPS,FTP,RSYNC}_PROXY
    echo -e  "Proxy environment variable removed."

    npm config delete proxy
    npm config delete https-proxy
    echo -e  "npm proxy removed."

    git config --global --unset http.proxy
    git config --global --unset https.proxy
    echo -e  "git global proxy removed."
}

作为参考,有很多好的博客文章/文章,例如hereherehere

答案 1 :(得分:2)

你现在的方式需要大量的管理。最好通过操作系统级别的SSH隧道将包括npm在内的所有流量进行隧道传输。这样您就可以在需要时打开/关闭隧道。

有一个很好的ssh-tunnel npm包可以帮助你从不同的环境切换你可以自己配置的staging / prod / etc - 看看github repo here