Comment puis-je enregistrer un package git local dans bower?
Mon component.json actuel est le suivant
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"Twitter/bootstrap": "2.1.1"
}
}
Cependant, je voudrais également ajouter un package que j'ai créé à C:/mypackage
qui est un dépôt git avec des versions balisées. Quand je fais bower install --save C:/mypackage
il l'ajoute correctement au projet mais ne l'ajoute pas à mon component.json.
J'essaie bower register mypackage C:/mypackage
mais ça continue de me donner
bower error Incorrect format
Qu'est-ce que je fais mal?
Bower est conçu principalement pour partager du code public (côté client) de manière "sans opinion". Le cas d'utilisation principal est donc d'avoir un référentiel accessible au public (sur GitHub) qui est register
d avec un nom et une URL de référentiel git. Je viens de le faire moi-même:
bower register linksoup git://github.com/automatonic/linksoup
Ceci indique simplement au serveur Bower que lorsque vous install linksoup
pour aller chercher le code dans le git://github.com/automatonic/linksoup
référentiel et placez-le dans le répertoire component
du projet local.
Si c'est ce que vous voulez faire, alors configurez simplement un référentiel sur github/etc., Poussez votre code là, puis register
avec les informations du référentiel résultant.
Il existe de nombreuses raisons de ne pas publier votre code dans un référentiel accessible au public. Il peut ne pas être open source, etc. si votre code mypackage
n'est pas destiné à être public, alors vous ne devriez probablement pas le register
ing sur le serveur public bower ... De plus, même si vous pourriez register
un répertoire local, cela ne fonctionnerait que sur votre machine ... ce qui va à l'encontre du but de partager le code via bower.
Si vous voulez juste que Bower gère une dépendance locale et privée, alors je vais me débarrasser de la solution blockhead's :
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"Twitter/bootstrap": "2.1.1",
"mypackage": "file:///path/to/mypackage/.git"
}
}
Cela signifie simplement que myproject
a besoin de mypackage
, et d'utiliser git clone pour le récupérer. Je suppose que cela peut utiliser tout ce que git peut comprendre (y compris les référentiels locaux). Mais vous devez noter que cela peut entraîner des problèmes pour toute autre personne travaillant sur ce code qui ne peut pas accéder à votre chemin local.
Il me semble que vous avez pu supposer que bower register
était une opération locale (expliquant à bower comment trouver une dépendance via une sorte de registre local). Pour autant que je sache, ce n'est qu'un enregistrement à distance et public, c'est pourquoi cela n'est pas pris en charge.
Vous cherchez peut-être aussi un moyen de faire quelque chose comme une opération de liaison avec npm . Autrement dit, travaillez sur un module de dépendance sans que votre cycle de développement ne comporte toujours une publication.
Un petit détail sur le nombre de personnes impliquées et ce que vous essayez d'accomplir faciliterait une réponse plus ciblée.
Vous pouvez ajouter n'importe quel référentiel git comme suit:
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"Twitter/bootstrap": "2.1.1",
"myrepo":"git://myrepo.com/myrepo"
}
}
Vous pouvez utiliser bower link
:
La fonctionnalité de lien permet aux développeurs de tester facilement leurs packages. La liaison est un processus en deux étapes.
En utilisant
bower link
dans un dossier de projet créera un lien global. Ensuite, dans un autre package,bower link <pkg>
créera un lien dans le dossier des composants pointant vers le lien créé précédemment.Cela permet de tester facilement un package car les modifications seront immédiatement reflétées. Veuillez noter que bower ne récupérera pas les dépendances du package lié.
Bower écrasera le lien lors de l'installation/mise à jour.
La grande idée avec bower
est de partager facilement les dépendances de vos projets. Donc l'utilisation du dépôt local devrait être limitée aux tests .
Une fois que vous comprenez cela, vous devez savoir qu'il n'est pas - strictement - nécessaire de register
votre paquet pour l'utiliser comme dépendance.
Cela est dû au fait que la dépendance de bower peut spécifier soit un version, un dossier ou un package. Donc vous pouvez utiliser le dépôt local .
Vous devrez d'abord définir votre dépendance en tant que package Bower :
# create the bower package
cd /path/to/you-need-me
bower init
# answer questions…
Ensuite, dans votre projet principal, celui qui a besoin du you-need-me
dépendance, modifier bower.json
fichier à ajouter (ou développer):
"dependencies": {
…
"you-need-me": "file:///path/to/you-need-me/.git/"
"you-need-me-windows": "C:/path/to/you-need-me-windows/.git/"
}
Vous ne donnez donc pas de version, mais un point de terminaison git
local, c'est-à-dire le sous-répertoire .git/
.
Dans le projet man, installez les dépendances de bower avec:
cd /path/to/main-project/
bower install
bower you-need-me#* ENOTFOUND Package /path/to/you-need-me/ not found
Vérifiez à nouveau votre chemin et que vous pointez sur le .git/
répertoire de votre dépendance.
Vous devriez obtenir quelque chose comme:
bower you-need-me#* not-cached file:///path/to/you-need-me/.git/#*
bower you-need-me#* resolve file:///path/to/you-need-me/.git/#*
bower you-need-me#* checkout master
bower you-need-me#* resolved file:///path/to/you-need-me/.git/#b18c753c6f
bower you-need-me#* install you-need-me#b18c753c6f
Écrivez une entrée de blog à ce sujet: Test de bower.json localement avant d'enregistrer le package .