web-dev-qa-db-fra.com

VS 2015 + Bower: Ne fonctionne pas derrière un pare-feu

Problème

Dans Visual Studio 2015, à l'aide de bower, les restaurations de package échouent derrière un pare-feu avec une erreur similaire à:

ECMDERR n'a pas pu exécuter "git ls-remote --tags --heads git: //github.com/jzaefferer/jquery-validation.git", code de sortie de # -532462766

J'ai mis à jour ma configuration git pour utiliser http au lieu de git. Quand je cours depuis ma ligne de commande, la commande est réussie:

enter image description here

Mais Visual Studio ou l'un de ses composants semble utiliser git au lieu de http, peu importe.

Contexte et première tentative de résolution

Utilisation de Visual Studio 2015 et de Bower pour la gestion des packages. Cela fonctionne très bien quand vous n'êtes pas derrière un pare-feu, mais quand je suis derrière un pare-feu, je ne peux pas utiliser le protocole git://.

La solution - documentée à de nombreux autres endroits sur SO ( exemple ), consiste à exécuter:

git config --global url."http://".insteadOf git://

Je l'ai fait, et maintenant mon git config -l ressemble à ceci:

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://

Malgré cela, Visual Studio/npm ne respecte pas ma configuration ou utilise une ancienne version en cache de celle-ci.

Deuxième tentative de résolution

Per ce fil sur npm issue , j’ai vu que npm (que bower utilise vraisemblablement dans VS) utilise la syntaxe git@. Même si ce n'est pas ce que j'ai vu dans la sortie, j'ai décidé de tenter le coup.

Iran:

git config --global url."https://github.com/".insteadOf [email protected]:

J'ai ensuite redémarré Visual Studio, mais le problème persiste. Le correctif que j'avais lu n'était probablement jamais applicable.

Des idées sur comment réparer?

33
SeanKilleen

Même problème avec VS 2015, ma solution de contournement:

  1. Installer Git 

    http://git-scm.com/

  2. Configurez Git pour utiliser http au lieu de git: // avec Git Bash

    git config --global url. "http: //" .insteadOf git: //

    Edit (comme indiqué par g.pickardou), vous pouvez utiliser https pour plus de sécurité: 

    git config --global url. "https: //" .insteadOf git: //

  3. Configurez VS pour utiliser le nouveau Git installé sur VS Git

    Faites un clic droit sur le dossier Bower (sous Dépendances), puis sélectionnez "Configurer les outils externes".

    Décochez la case "$ (DevEnvDir)\Extensions\Microsoft\Outils Web\Externe\git"

    Ajouter un nouveau noeud avec "C:\Program Files (x86)\Git\bin"

J'espère que cela aidera quelqu'un,

Rogerio

61
Rogerio Soares

La version de Microsoft de git installée (au moins avec la mise à jour VS2015) fait honore le fichier .gitconfig, mais l’outil installé par défaut ne vous permet pas de le manipuler (comme le montrent toutes les autres réponses en utilisant git config pour résoudre le problème).

Pour résoudre le problème sans aucune installation supplémentaire, créez simplement un fichier .gitconfig dans C:\Users\YourUserName et mettez-y le contenu (qui est le contenu que git config --global ferait, mais puisque vous n’avez pas .exe qui peut changer de configuration, vous ne pouvez pas l'utiliser sans installer quelque chose dont vous n'avez pas vraiment besoin)


 [url "https://github.com/"]
 placeOf = [email protected]: 
 [url "https: //"] 
 Au lieu de cela = git: //
.____.
13
BrettJ

La solution qui a fonctionné pour moi avec VS2015 Release est la suivante:

  1. Installez l'outil de ligne de commande git.
  2. Modifiez le fichier C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Outils Web\External\bower.cmd avec ce contenu:

    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" %*
    
7
arcaner

J'ai eu le même problème. Apparemment, le fichier Git.exe avec lequel CTP VS2015 est livré n’utilise pas .gitconfig. Mais vous pouvez y remédier (manuellement) si les outils de ligne de commande git sont installés ailleurs.

Dans C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External, vous devrez éditer le fichier bower.cmd

Commentez les lignes 4 et 5:

rem -- set GIT_PATH=%~dp0\git
rem -- set PATH=%GIT_PATH%;%PATH%`

Cela déclenchera la commande pour utiliser le Git que vous avez déjà installé, qui récupérera le .gitconfig local.

Assurez-vous que vous avez défini le paramètre git approprié:

git config --global url."http://".insteadOf git://
6
MagicMau

Avec VS 2015, mise à jour 2: il suffit d'installer Git

http://git-scm.com/

6
Mano Mangaldas

J'ai eu le même problème dans Visual Studio 2015 RC (pas CTP) et j'ai été résolu.

Le bower.cmd en 2015 RC ne fonctionne pas bien, donc je devais le désactiver dans mon VS et utiliser celui officiel installé sur mon PC. Il est facile de le faire en cliquant avec le bouton droit de la souris sur le dossier "Bower" dans le projet et en sélectionnant "configurer les outils externes", puis en décochant la section "$ (DevEnvDir)\Extensions\Microsoft\Outils Web\External\git".

Vous devrez peut-être également changer le fichier ".bowerrc" pour que GIT fonctionne dans le bon chemin pour votre projet.

Après cela, tout fonctionne comme prévu.

4
L.L.

La réponse la plus facile qui fonctionne vraiment est ici. J'ai eu un gros problème avec ce problème . Il suffit de télécharger git et de l'installer . Pendant l'installation, choisissez cette option . Exécutez Git à partir de la commande windows Prompt

3
pawan nepal

J'ai eu ce même problème dans Visual Studio 2015 RC (pas CTP). Comme il s’agit du seul fil pertinent que j’ai trouvé nulle part ailleurs, j’ajouterais mon 2c ici. 

En développant la réponse de @ MagicMau, les lignes référencées dans bower.cmd n'existent pas dans la version 2015 de la RC. J'ai donc adopté une approche différente et défini la variable d'environnement PATH afin que l'ensemble de mon fichier bower.cmd ressemble à ceci:

set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
@"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*

Notez que la première ligne est ce que j'ai ajouté, et la deuxième ligne était le contenu existant. 

La première fois que j'ai fait cela, Visual Studio s'est écrasé lors de la restauration du package, mais semble fonctionner après un redémarrage de VS. 

2
SirSquidness

Il était si pénible de définir correctement les paramètres de proxy …… Je partage ma solution. 

Je travaille sous Windows 10 avec Visual Studio 2015 . Je dois définir les paramètres de proxy lorsque je suis au travail et les supprimer à la maison.

Pour ce faire, vous avez 2 solutions.

  1. Configurer les outils externes Visual Studio pour utiliser les paramètres appropriés
  2. Installez les outils (node, npm, bower) sur votre ordinateur et utilisez-les (vous pouvez définir les options de Visual Studio pour les utiliser)

Solution 1 (Configurer les outils externes VS)

  1. Configurez Npm. Exécutez la commande suivante dans l'invite de l'administrateur.

    > 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
    
  2. Configurez Git. Ajoutez un fichier .gitconfig situé dans C:\Windows\Users \% USERNAME%. Ajoutez ensuite la clé/valeur suivante.

    [http]
        proxy = http://proxyuser:[email protected]:8080
    [https]
        proxy = http://proxyuser:[email protected]:8080
    
  3. Configurez Bower. Ajoutez un fichier .bowerrc situé dans C:\Windows\Users \% USERNAME%. Ajoutez ensuite la clé/valeur suivante.

    {
      "proxy": "http://proxyuser:[email protected]:8080",
      "https-proxy": "http://proxyuser:[email protected]:8080"
    }
    

WARNING: Si votre mot de passe proxy contient des caractères spéciaux, vous devez encoder l'URL du proxy. Exemple:

Et voilà :)

Solution 2 (Installer des outils sur votre machine)

J'ai installé node.js, npm, git et bower globalement sur ma machine (car j'ai besoin de plus de contrôle que les outils externes/disponibles dans VS).

  1. Installer Node.js: Site Web NodeJS
  2. Installer Npm NOTE: Npm est installé automatiquement par Node.js. (En d'autres termes, laissez node.js l'installer pour vous)
  3. Installer Git: Site Web Git Veillez simplement à cocher cette option pour exécuter la commande Git dans l'invite de Windows screen shot git installation
  4. Installer Bower (globalement): npm install -g bower
  5. Configurez Visual Studio Tools pour utiliser les nouveaux outils installés. Pour ce faire, lancez Visual Studio => Outils => Options => Ouvrir le noeud "Projets et solutions" => Ouvrir les outils Web externes => Décochez la case "$ (DevEnvDir)\Extensions\Microsoft\Outils Web\Externe\git". Ajouter un nouveau "C:\Program Files (x86)\Git\bin"
  6. Définir les paramètres du proxy. Exécutez les scripts ci-dessous dans PowerShell en tant que Administrator

J'ai créé 2 scripts PowerShell pour Windows afin de définir/désactiver les paramètres du proxy (testé sous Windows 10).

  • Sur work, je dois définir les paramètres du proxy. 

    Exécutez > ./proxy.ps1dans un PowerShell

  • À home, je dois supprimer les paramètres de proxy. 

    Exécuter > ./proxy.disabled.ps1 dans 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

WARNING: Si votre mot de passe proxy contient des caractères spéciaux, vous devez encoder l'URL du proxy. Exemple:

WARNING: UNSET PROXY => Certains paramètres de bower peuvent être remplacés dans un fichier .bowerrc situé dans C:\Users \% USERNAME%. En d'autres termes, si cela ne fonctionne pas, vérifiez si vous avez un fichier .bowerrc. Ensuite, supprimez les clés suivantes si elles existent:

{
  ...
  "proxy": "http://proxyuser:[email protected]:8080",
  "https-proxy": "http://proxyuser:[email protected]:8080",
   ...
}

WARNING: UNSET PROXY => Certains paramètres nmp/node peuvent être remplacés dans un fichier npmrc situé sous C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Outils Web\Externe\noeud\Etc. En d'autres termes, si cela ne fonctionne pas, vérifiez si vous avez un fichier npmrc. Ensuite, supprimez la clé suivante si elles existent:

http_proxy="http://proxyuser:[email protected]:8080"
https_proxy="http://proxyuser:[email protected]:8080"

Et voilà :)

1
rdhainaut

Si vous voulez une solution globale

WARNING: cela peut avoir un impact sur plusieurs paramètres de proxy via différentes applications mais c'est certainement ce que vous voulez :) 

NOTE Si vous avez des caractères spéciaux dans votre nom d'utilisateur: mot de passe dans vos paramètres de proxy, vous devez les URLENCODER. Exemple: http: //DOMAIN%5Cuser+name%3AP%40%24%[email protected]: 8080

Vous devez ajouter 2 variables d'environnement.

Pour le faire sur Windows 10: 

  1. DÉBUT 
  2. Rechercher "Modifier les variables d'environnement du système"
  3. (dans l'onglet adanced des propriétés du système), cliquez sur "Variables d'environnement ...)
  4. (dans la variable système) cliquez sur "Nouveau ..." 
  5. Créer une variable (Nom de la variable: HTTP_PROXY, Valeur de la variable: http: // proxyuser: [email protected]: 8080 )
  6. Créer une variable (Nom de la variable: HTTPS_PROXY, Valeur de la variable: http: // proxyuser: [email protected]: 8080 )
  7. Redémarrer Windows 
0
rdhainaut

Si vous avez un administrateur pare-feu convivial, demandez-lui d'autoriser l'accès aux référentiels git externes en définissant la politique de pare-feu suivante:

TCP 9418 (pas besoin d'UDP)

0
dataCore

Exécuter Bower de VS à partir de la ligne de commande avec un dossier personnel mappé

La réponse donnée par @Rogerio Soares est bonne et je pense que beaucoup de gens la trouveront très utile (moi-même inclus). 

Cela dit, au travail, les outils que je peux installer sont très très limités (ce qui signifie que je ne peux pas installer une autre version de Bower sans obtenir la permission de nombreuses personnes). De plus, mon répertoire personnel est mappé sur un partage réseau à z:\ par politique. Chaque fois que j’émettais git config --global pour configurer git, les paramètres de configuration étaient placés dans z:\.gitconfig. Ce fichier de configuration est correctement utilisé avec Git SCM. Cependant, apparemment, libgit2sharp (utilisé par la version de Git intégrée à Visual Studio 2015) a besoin de ce fichier à c:\username\.gitconfig.

Ainsi, après avoir copié mon fichier .gitconfig de z:\ à c:\username\, j'ai pu exécuter la version de bower de Visual Studio directement à partir de la ligne de commande.

0
Mike Atkisson