git - tutorial - VS 2015+Bower: no funciona detrás del firewall
visual studio 2018 (12)
Problema
En Visual Studio 2015, usando bower, mi paquete restaura fallas cuando está detrás de un firewall con un error similar a:
ECMDERR no pudo ejecutar "git ls-remote --tags --heads git: //github.com/jzaefferer/jquery-validation.git", código de salida de # -532462766
He actualizado mi configuración de git para usar
http
lugar de git.
Cuando corro desde mi línea de comando, el comando es exitoso:
Pero Visual Studio o uno de sus componentes parece estar usando
git
lugar de
http
independientemente.
Antecedentes y primer intento de resolver
Usando Visual Studio 2015 y Bower para la gestión de paquetes.
Funciona muy bien cuando no está detrás de un firewall, pero cuando está detrás de un firewall no puedo usar el protocolo
git://
.
La solución, documentada en muchos otros lugares en SO ( example ), es ejecutar:
git config --global url."http://".insteadOf git://
Hice esto, y ahora mi
git config -l
ve así:
ore.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Sean Killeen
[email protected]
url.http://.insteadof=git://
Pero a pesar de esto, Visual Studio / npm no está respetando mi configuración o está usando una versión anterior en caché.
Segundo intento de resolver
Según
este hilo sobre el problema de npm
, vi que npm (que presumiblemente Bower está usando en VS) usa la sintaxis
git@
.
Aunque esto no es lo que vi en la salida, pensé que le daría una oportunidad.
Corrí:
git config --global url."https://github.com/".insteadOf [email protected]:
Luego reinicié Visual Studio, pero el problema aún persiste. La solución sobre la que leí probablemente nunca fue aplicable.
Alguna idea sobre como arreglarlo?
Ejecutar VS''s Bower desde la línea de comandos con una carpeta de inicio asignada
La respuesta dada por @Rogerio Soares es buena y creo que muchas personas la encontrarán muy útil (incluido yo mismo).
Dicho esto, aquí en el trabajo, las herramientas que puedo instalar son muy, muy restringidas (lo que significa que no puedo instalar otra versión de Bower sin obtener el permiso de muchas personas), además mi directorio de inicio está asignado a un recurso compartido de red en
z:/
por política.
Cada vez que
git config --global
para configurar git, los ajustes de configuración se colocarían en
z:/.gitconfig
.
Este archivo de configuración se cumple muy bien con Git SCM completo.
Aparentemente, sin embargo, libgit2sharp (utilizado por la versión de Git integrada con Visual Studio 2015) necesita que este archivo esté en
c:/username/.gitconfig
.
Entonces, después de copiar mi archivo
.gitconfig
de
z:/
a
c:/username/
, pude ejecutar la versión de Bower de Visual Studio directamente desde la línea de comandos.
Con VS 2015, Actualización 2: solo instale Git
Fue muy doloroso establecer correctamente la configuración del proxy. Comparto mi solución.
Trabajo en Windows 10 con Visual Studio 2015. Debo establecer la configuración del proxy cuando estoy en el trabajo y eliminarla en casa.
Para lograr esto, tienes 2 soluciones.
- Configure las herramientas externas de Visual Studio para usar la configuración adecuada
- Instale herramientas (nodo, npm, bower) en su máquina y úselas (puede configurar las opciones de Visual Studio para usarlas)
Solución 1 (Configurar herramientas externas VS)
-
Configurar Npm. Ejecute el siguiente cmd en la solicitud de administración.
> cd "C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/Extensions/Microsoft/Web Tools/External" > npm.cmd config set --global http_proxy http.proxy http://proxyuser:[email protected]:8080 > npm.cmd config set --global http_proxy http.proxy http://proxyuser:[email protected]:8080
-
Configurar Git. Agregue un archivo .gitconfig ubicado en C: / Windows / Users /% USERNAME%. Luego agregue la siguiente clave / valor.
[http] proxy = http://proxyuser:[email protected]:8080 [https] proxy = http://proxyuser:[email protected]:8080
-
Configurar Bower. Agregue un archivo .bowerrc ubicado en C: / Windows / Users /% USERNAME%. Luego agregue la siguiente clave / valor.
{ "proxy": "http://proxyuser:[email protected]:8080", "https-proxy": "http://proxyuser:[email protected]:8080" }
ADVERTENCIA : si tiene caracteres especiales en su contraseña de proxy, debe codificar la URL del proxy. Ejemplo:
- nombre de usuario : DOMINIO / nombre de usuario
- contraseña : P @ $$ w0rd
- servidor proxy : 10.80.0.0
- puerto proxy : 8080
- URL PROXY con autenticación: http: //DOMAIN%5Cuser+name%3AP%40%24%[email protected]: 8080
Et Voilà :)
Solución 2 (Instale herramientas en su máquina)
He instalado node.js, npm, git y bower a nivel mundial en mi máquina (porque necesito tener más control que solo herramientas externas / disponibles en VS).
- Instalar Node.js: sitio web de NodeJS
- Instalar Npm NOTA : Npm es instalado automáticamente por Node.js. (En otras palabras, deje que node.js lo instale por usted)
- Instalar Git: sitio web de Git Solo asegúrese de marcar esta opción para ejecutar el comando Git en el indicador de Windows
-
Instalar Bower (globalement):
npm install -g bower
- Configure Visual Studio Tools para usar nuevas herramientas instaladas. Para hacerlo, inicie Visual Studio => Herramientas => Opciones => Abrir nodo "Proyectos y soluciones" => Abrir Herramientas web externas => Desmarque "$ (DevEnvDir) / Extensiones / Microsoft / Herramientas web / Externo / git". Agregar nuevo "C: / Archivos de programa (x86) / Git / bin"
- Establecer la configuración del proxy. Ejecutar debajo de los scripts en PowerShell como administrador
He creado 2 scripts de PowerShell para que Windows establezca / desarme la configuración del proxy (Probado en Windows 10).
-
En el trabajo , necesito establecer la configuración del proxy.
Ejecute
> ./proxy.ps1
en un PowerShell -
En casa , debo eliminar la configuración del proxy.
Ejecute
> ./proxy.disabled.ps1
en un PowerShell
proxy.ps1
# System Environment variable
$env:HTTP_PROXY = "http://proxyuser:[email protected]:8080"
$env:HTTPS_PROXY = "http://proxyuser:[email protected]:8080"
# Fix (some tools uses lowercase env variables)
$env:http_proxy = "http://proxyuser:[email protected]:8080"
$env:https_proxy = "http://proxyuser:[email protected]:8080"
# Git config
git config --global http.proxy http://proxyuser:[email protected]:8080
git config --global https.proxy http://proxyuser:[email protected]:8080
# Npm config
npm config set proxy http://proxyuser:[email protected]:8080
npm config set https-proxy http://proxyuser:[email protected]:8080
# Restart Windows
Restart-Computer -Confirm
proxy.disabled.ps1
# Delete System Environment variable
Remove-Item env:/HTTP_PROXY
Remove-Item env:/HTTPS_PROXY
Remove-Item env:/http_proxy
Remove-Item env:/https_proxy
# Reset Git Config
git config --global --unset http.proxy
git config --global --unset https.proxy
# Reset Npm Config
npm config --global delete proxy
npm config --global delete https-proxy
# Restart Windows
Restart-Computer -Confirm
ADVERTENCIA : si tiene caracteres especiales en su contraseña de proxy, debe codificar la URL del proxy. Ejemplo:
- nombre de usuario : DOMINIO / nombre de usuario
- contraseña : P @ $$ w0rd
- servidor proxy : 10.80.0.0
- puerto proxy : 8080
- URL PROXY con autenticación: http: //DOMAIN%5Cuser+name%3AP%40%24%[email protected]: 8080
ADVERTENCIA : UNSET PROXY => Algunas configuraciones de Bower se pueden anular en un archivo .bowerrc ubicado en C: / Users /% USERNAME%. En otras palabras, si no funciona, verifique si tiene un archivo .bowerrc. Luego, elimine las siguientes claves si existen:
{
...
"proxy": "http://proxyuser:[email protected]:8080",
"https-proxy": "http://proxyuser:[email protected]:8080",
...
}
ADVERTENCIA : UNSET PROXY => Algunas configuraciones nmp / node se pueden anular en un archivo npmrc ubicado en C: / Archivos de programa (x86) / Microsoft Visual Studio 14.0 / Common7 / IDE / Extensions / Microsoft / Web Tools / External / node / etc . En otras palabras, si no funciona, verifique si tiene un archivo npmrc. Luego, elimine la siguiente clave si existen:
http_proxy="http://proxyuser:[email protected]:8080"
https_proxy="http://proxyuser:[email protected]:8080"
Et Voilà :)
La respuesta más fácil que definitivamente funciona está aquí. Me dolía mucho la cabeza con este problema. Solo descarga git e instálalo. Durante la instalación, elija esta opción. Ejecute Git desde el símbolo del sistema de Windows
La solución que funcionó para mí con VS2015 Release es:
- Instale la herramienta de línea de comando git.
-
Modifique el archivo C: / Archivos de programa (x86) / Microsoft Visual Studio 14.0 / Common7 / IDE / Extensions / Microsoft / Web Tools / External / bower.cmd con este contenido:
set PATH=C:/Program Files (x86)/Git/bin/;%PATH% git config --global url."http://".insteadOf git:// git config -l @"%~dp0/node/node" "%~dp0/bower/node_modules/bower/bin/bower" %*
La versión de Microsoft de git que está instalada (al menos con VS2015 Actualización 1) respeta el archivo .gitconfig, pero las herramientas que se instalan de manera predeterminada no le brindan una forma de manipularlo (como todas las otras respuestas muestran el uso de git config para arreglar el problema).
Para solucionar el problema sin instalaciones adicionales y demás, simplemente cree un archivo .gitconfig en C: / Users / YourUserName y coloque este contenido allí (que es el contenido que haría git config --global pero ya que no tiene un git .exe que puede cambiar la configuración, no puede usar eso sin instalar otra cosa que realmente no necesita)
[url "https://github.com/"] insteadOf = [email protected]: [url "https://"] insteadOf = git://
Mismo problema con VS 2015, mi solución:
-
Instalar Git
-
Configure Git para usar http en lugar de git: // con Git Bash
git config - url global. "http: //" .insteadOf git: //
Editar (como lo señala g.pickardou) puede usar https para estar más seguro:
git config - url global. " https : //" .insteadOf git: //
-
Configure VS para usar el nuevo Git instalado sobre VS Git
Haga clic derecho en la carpeta Bower (en Dependencias), luego seleccione "Configurar herramientas externas"
Desmarque "$ (DevEnvDir) / Extensions / Microsoft / Web Tools / External / git"
Agregue un nuevo nodo con "C: / Archivos de programa (x86) / Git / bin"
Espero que esto ayude a alguien,
Rogerio
Si quieres una solución global .
ADVERTENCIA : puede afectar varias configuraciones de proxy a través de diferentes aplicaciones, pero ciertamente es lo que desea :)
NOTA Si tiene caracteres especiales en su nombre de usuario: contraseña en la configuración de su proxy, debe URLENCODELOS. Ejemplo: http: //DOMAIN%5Cuser+name%3AP%40%24%[email protected]: 8080
Debe agregar 2 variables de entorno.
- HTTP_PROXY: http: // proxyuser: [email protected]: 8080
- HTTPS_PROXY: http: // proxyuser: [email protected]: 8080
Para hacer eso en Windows 10:
- COMIENZO
- Buscar "Editar las variables de entorno del sistema"
- (en la pestaña avanzada de propiedades del sistema) haga clic en "Variables de entorno ...)
- (en la variable del sistema) haga clic en "Nuevo ..."
- Crear variable (nombre de la variable: HTTP_PROXY, valor de la variable: http: // proxyuser: [email protected]: 8080 )
- Crear variable (nombre de la variable: HTTPS_PROXY, valor de la variable: http: // proxyuser: [email protected]: 8080 )
- Reiniciar Windows
Si tiene un administrador de firewall amigable, pídale que permita el acceso a repositorios externos de git definiendo la siguiente política de firewall:
TCP 9418 (sin necesidad de UDP)
Tuve el mismo problema en Visual Studio 2015 RC (no CTP) y resolví.
El bower.cmd en 2015 RC no funciona bien, así que necesitaba deshabilitarlo en mi VS y usar el oficial instalado en mi PC. Es fácil hacerlo simplemente haga clic derecho en la carpeta "Bower" en el proyecto y seleccione "configurar herramientas externas" y luego desmarque la sección "$ (DevEnvDir) / Extensions / Microsoft / Web Tools / External / git".
También es posible que deba cambiar el archivo ".bowerrc" para que GIT funcione en la ruta correcta para su proyecto.
Después de hacer esto, todo funciona como se esperaba.
Tuve este mismo problema en Visual Studio 2015 RC (no CTP). Como este es el único hilo relevante que encontré en cualquier lugar, pensé que agregaría mi 2c aquí.
Ampliando la respuesta de @ MagicMau, las líneas a las que se hace referencia en bower.cmd no existen en 2015 RC, por lo que tomé un enfoque diferente y configuré la variable PATH env, de modo que todo mi archivo bower.cmd ahora se ve así:
set PATH=C:/Program Files (x86)/Git/bin/;%PATH%
@"%~dp0/node/node" "%~dp0/bower/node_modules/bower/bin/bower" %*
Tenga en cuenta que la primera línea es lo que agregué, y la segunda línea era el contenido existente.
La primera vez que hice esto, Visual Studio se bloqueó durante la restauración del paquete, pero parece estar funcionando después de reiniciar VS.
Yo tuve el mismo problema. Aparentemente, el Git.exe con el que se incluye VS2015 CTP no usa .gitconfig. Pero puede arreglarlo (manualmente), si tiene las herramientas de línea de comando git instaladas en otro lugar.
En
C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/Extensions/Microsoft/Web Tools/External
, deberá editar el archivo
bower.cmd
.
Comente las líneas 4 y 5:
rem -- set GIT_PATH=%~dp0/git
rem -- set PATH=%GIT_PATH%;%PATH%`
Esto activará el comando para usar el Git que ya instaló, que recogerá el .gitconfig local.
Asegúrese de haber configurado la configuración de git adecuada:
git config --global url."http://".insteadOf git://