Comment changer le dossier des composants par défaut de Bower?


475

Je fais un nouveau projet qui utilise bower de twitter. J'ai créé un component.jsonpour maintenir toute ma dépendance comme jquery. Ensuite, je lance bower installqui installe tout dans un dossier nommé components. Mais je dois installer les composants dans un dossier différent, par exemple public/components.

J'ai essayé d'éditer mon components.json en:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

ou:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

comme indiqué dans https://github.com/twitter/bower/pull/94 mais cela ne fonctionne pas.

Réponses:


930

Créez un fichier de configuration Bower.bowerrc à la racine du projet (par opposition à votre répertoire personnel) avec le contenu:

{
  "directory" : "public/components"
}

Réexécutez bower install.


4
Je changelog je peux seulement voir The value of the json property from .bowerrc is no longer usedet je suppose que tout va bien avec la "directory"propriété. Droite? github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin

11
Ça ne marche pas pour moi. Fonctionne dans .bowerrc, mais pas dans bower.json. Cela semble être une telle fonctionnalité de base ...
elliottregan

148
Je suis curieux de savoir pourquoi cela ne serait pas placé dans le fichier bower.json. Surtout si c'est un paramètre par projet de toute façon.
Hayden

8
Sur la base des documents, il doit être dans .bowerrc, pas bower.json. Strange ... bower.io/#custom-install-directory
joemfb

20
Sous Windows, pour créer un fichier commençant par ".", Créez simplement le fichier avec un "." De fin. En d'autres termes, il suffit de l'appeler ".bowerrc".
PeteK68

76

Outre la modification .bowerrcpour configurer votre chemin d'installation par défaut, vous pouvez également configurer des chemins d'installation personnalisés pour différents types de fichiers.

Il existe un package de nœuds appelé bower-installer qui fournit une commande unique pour gérer les chemins d'installation alternatifs.

courir npm install -g bower-installer

Configurez votre bower.json

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

Exécutez la commande suivante: bower-installer

Cela va installer components/jquery-ui/themes/start/jquery-ui.csssur ./src/css, etc.


4
Cela semble prometteur, mais le bower_componentsrépertoire est toujours créé et rempli. :(
Ben

quelle version de bower?
lfender6445

semble être la nature de l'emballage. vous pouvez ouvrir un problème ici github.com/blittle/bower-installer/issues ou écrire un script bash pour supprimer le répertoire après l'installation.
lfender6445

1
Je pense que cela n'a aucun sens. Je ne veux pas de package qui télécharge toujours le référentiel git complet et les dépendances, puis copaste les fichiers spécifiques pour moi ... Je peux appuyer sur Ctrl + C moi-même. J'espérais qu'il ne téléchargerait que des fichiers spécifiques pour moi.
Alendorff

ouais je vous entends. dans ce cas, j'ai juste un .bowerrc et pointez sur public / bower ou public / vendor pour garder le projet simple.
lfender6445

61

J'ai eu le même problème sur mes fenêtres 10. C'est ce qui a résolu mon problème

  1. Supprimer bower_componentsdans votre dossier racine
  2. Créer un .bowerrcfichier à la racine
  3. Dans le fichier, écrivez ce code {"directory" : "public/bower_components"}
  4. Exécutez un bower install

Vous devriez maintenant voir le dossier bower_components dans votre dossier public


23

Quelque chose qui mérite d'être mentionné ...

Comme indiqué ci-dessus par d'autres contributeurs, l'utilisation d'un .bowerrcfichier avec le JSON

{ "directory": "some/path" }

est nécessaire - CEPENDANT, vous pouvez rencontrer un problème sur Windows lors de la création de ce fichier. Si Windows vous donne un message vous invitant à ajouter un " nom de fichier ", utilisez simplement un éditeur de texte / IDE tel que Notepad ++.

Ajoutez le JSON à un fichier sans nom, enregistrez-le sous .bowerrc - vous êtes prêt à partir!

Probablement une hypothèse facile, mais j'espère que cela évitera aux autres les maux de tête inutiles :)


18
Sous Windows, pour créer un fichier commençant par ".", Créez simplement le fichier avec un "." De fin. En d'autres termes, il suffit de l'appeler ".bowerrc".
PeteK68

vous pouvez aussi le faire avec git bash, tapez simplement:echo >> .bowerrc
Leandro RR

7

Essayez de placer le components.jsonfichier dans le publicrépertoire de votre application, plutôt que dans le répertoire racine, puis réexécutez bower install... essayez ceci dans le répertoire de base de votre application:

cp components.json public
cd public
bower install

1
yup qui peut être un moyen, existe-t-il un moyen légitime de le faire? mais je compte encore mal comme réponse.
Adam Ramadhan

2
vous pouvez écrire un script bash bower.shpour ajouter le répertoire que vous souhaitez installer, comme `public-components.json ', puis il générera les commandes ci-dessus.
hagope

2
Ces deux réponses semblent super hacky, certainement pas souhaitable
Jay

-3

Salut, je suis le même problème et résoudre de cette façon.

utilisateur Windows et fichier cant'create .bowerrc.

dans cmd aller dans n'importe quel dossier

installez tous les packages contenant le fichier .bowerrc par exemple

bower install angular-local-storage

ce plugin contient le fichier .bowerrc. copiez cela et allez dans votre projet et collez ce fichier.

et dans visual studio - solution explorer - afficher tous les fichiers et inclure le projet vu le fichier .bowerrc

je résous de cette façon :)


vous pouvez utiliser Cygwinou Cmderterminal pour créer un .bowerrcfichier.
Francis.TM

4
Créez simplement le fichier avec n'importe quel nom, puis ouvrez un PowerShell ou une invite de commande et renommez-le.
TrueWill

Vous pouvez créer un fichier à points dans Windows en spécifiant le nom de fichier comme «.name». - encore peu de gens le savent après tant d'années de disponibilité :)
Alex Paven
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.