Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 关于开发工具的两个简介(工作和家庭)_Git_Bash_Macos_Npm - Fatal编程技术网

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

Git 关于开发工具的两个简介(工作和家庭),git,bash,macos,npm,Git,Bash,Macos,Npm,我有一个如下的场景,我需要一个解决方案 场景: 我每天都使用Android软件包管理器、nodeJS(npm)、Homebrew等开发工具。我需要在家里和工作中使用它,但在工作中我支持代理,所以我必须在每个工具上设置代理,例如 npm config set proxy http://proxy:10 但是当我在家工作时,我不需要它,因为代理服务器不能提供世界上最快的带宽:)我会说,它非常慢,我不想浪费时间下载速度慢10倍的软件包 问题: 在这些工具上有两种不同的配置文件吗?或者每次更改位置(工

我有一个如下的场景,我需要一个解决方案

场景
我每天都使用Android软件包管理器、nodeJS(npm)、Homebrew等开发工具。我需要在家里和工作中使用它,但在工作中我支持代理,所以我必须在每个工具上设置代理,例如

npm config set proxy http://proxy:10
但是当我在家工作时,我不需要它,因为代理服务器不能提供世界上最快的带宽:)我会说,它非常慢,我不想浪费时间下载速度慢10倍的软件包

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

如果可能的话,或者您有过熟悉场景的经验,请告诉我。

谢谢

你现在这样做需要很多管理。最好通过操作系统级别的SSH隧道来隧道所有流量,包括npm。这样你就可以随时打开/关闭隧道


有一个很好的ssh tunnel npm包,它可以帮助您从不同的环境切换到staging/prod/etc,您可以自己进行配置-看看github repo。

总之,我最终得到了一个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."
}

作为参考,这里有很多好的博客帖子/文章,例如和。

谢谢你的回答。它看起来很有希望,但是像SublimateText或git这样的自制工具(当我需要克隆回购协议时,我也必须设置代理)?如果你想让所有连接都通过隧道,那么你需要的是VPN,因此如果你的工作没有提供,您可以1)获得VPN提供商,或2)获得支持VPN的路由器,或3)在服务器上设置类似openVPN的VPN服务器,从而允许您的所有连接通过该VPN,包括您的所有应用程序。请随意提出一个新问题,了解更多信息。是的。我明白你的意思。但情况是完全绕过使用VPN,或者在我不需要的时候设置代理。因为我仍然可以在代理后设置所有内容,然后通过VPN从家中连接,它可以正常工作,但速度非常慢(例如,150 kb/s vs 15 MBit/s),对我来说,这会有所不同。这就是我问这个问题的原因;)我想你是糊涂了。当您不需要它时,请按“关闭”按钮,希望您可以管理它;)我想过了一会儿,我没有感到困惑,你也没有回答我的问题;)但是,我非常感谢您的帮助、帖子、评论和ssh隧道,所以我对您的答案投了赞成票;)