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.

Adam Ramadhan
la source

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.

Adam Ramadhan
la source
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.

lfender6445
la source
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

Tim Anishere
la source
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 :)

Cody
la source
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
hagope
la source
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 :)

Abdullah SARGIN
la source
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