web-dev-qa-db-ja.com

Bowerでローカルgitパッケージを登録する方法は?

Bowerでローカルgitパッケージを登録するにはどうすればよいですか?

私の現在のcomponent.jsonは次のとおりです

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1"
  }
}

ただし、C:/mypackageで作成したパッケージにタグを付けたバージョンのgitリポジトリも追加したいと思います。 bower install --save C:/mypackageを実行すると、プロジェクトに適切に追加されますが、component.jsonには追加されません。

私はbower register mypackage C:/mypackageを試みていますが、それは私に与え続けます

bower error Incorrect format

私は何を間違えていますか?

61
user391986

オプション1:公開バウワー登録

Bowerは、主に「非意見」の方法で公開(クライアント側)コードを共有するために構築されています。したがって、主な使用例は、名前とgitリポジトリのURLを持つregisterdである(GitHub上の)パブリックにアクセス可能なリポジトリを持つことです。私はこれを自分でやった:

bower register linksoup git://github.com/automatonic/linksoup

これは、バウアーサーバーにinstall linksoupに行き、git://github.com/automatonic/linksoupリポジトリ、およびローカルプロジェクトのcomponentディレクトリに配置します。

これがやりたいことであれば、github/etcにリポジトリを設定し、そこにコードをプッシュしてから、結果のリポジトリ情報でregisterを押してください。

オプション2:プライベートな依存関係

公的にアクセス可能なリポジトリにコードを投稿しない理由はたくさんあります。もしあなたのmypackageコードが公開されることを意図していなければ、それはオープンソースではないかもしれません。そして、あなたはおそらく公開バウアーサーバー上でそれをregisteringするべきではありません...ローカルディレクトリにregisterできますが、それはあなたのマシン上でのみ動作します...これは、bower経由でコードを共有する目的に反します。

ローカルのプライベートな依存関係を管理するだけの場合は、 blockhead's ソリューションをリフティングします。

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1",
    "mypackage": "file:///path/to/mypackage/.git"
  }
}

これはmyprojectmypackageを必要とし、git cloneを使用してそれを取得することを言っているだけです。私の推測では、これはgitが理解できるもの(ローカルリポジトリを含む)を使用できます。ただし、このコードで作業している他のユーザーがローカルパスにアクセスできない場合、問題が発生する可能性があることに注意してください。

最良の推測

私は、あなたがbower registerはローカル操作でした(ある種のローカルレジストリを介して依存関係を見つける方法を説明する)。私が知る限り、これはリモートおよびパブリック登録のみであるため、これはサポートされていません。

npmでのリンク操作 のような方法を探しているかもしれません。つまり、開発サイクルに常にパブリッシュを含めることなく、依存関係モジュールで作業します。

何人の人々が関与しているか、そしてあなたが何を達成しようとしているかについての少しの詳細は、より的を絞った答えを促進するでしょう。

71
el2iot2

次のように、任意のgitリポジトリを追加できます。

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1",
    "myrepo":"git://myrepo.com/myrepo"
  }
}
53
blockhead

bower linkを使用できます:

リンク機能により、開発者はパッケージを簡単にテストできます。リンクは2段階のプロセスです。

プロジェクトフォルダーでbower linkを使用すると、グローバルリンクが作成されます。次に、他のパッケージでは、bower link <pkg>により、以前に作成されたリンクを指すリンクがコンポーネントフォルダーに作成されます。

これにより、変更がすぐに反映されるため、パッケージを簡単にテストできます。 bowerはリンクされたパッケージの依存関係を取得しないことに注意してください。

Bowerは、インストール/更新時にリンクを上書きします。

33
Ali Shakiba

bower の大きなアイデアは、プロジェクトの依存関係を簡単に共有することです。そのため、ローカルリポジトリの使用はテストに制限する必要があります

それを理解したら、依存関係として使用するためにパッケージをregisterする必要がないことを厳密に知る必要があります。

これは、亭の依存性がversionfolder、またはのいずれかを指定できるという事実によるものです。パッケージ。したがって、ローカルリポジトリを使用できます

バウアーパッケージとして定義

最初に 依存関係をbowerパッケージとして定義する :が必要です。

# create the bower package
cd /path/to/you-need-me
bower init
# answer questions…

プロジェクトの依存関係として追加

次に、you-need-me依存関係を必要とするメインプロジェクトで、bower.jsonファイルを編集して追加(または展開)します。

  "dependencies": {
    …
    "you-need-me":  "file:///path/to/you-need-me/.git/"
    "you-need-me-windows":  "C:/path/to/you-need-me-windows/.git/"
  }

したがって、バージョンではなくローカルgitエンドポイント、つまりサブディレクトリ.git/を指定します。

インストール依存関係

Manプロジェクトで、次のものを使用してbower依存関係をインストールします。

cd /path/to/main-project/
bower install

Failure

bower you-need-me#*              ENOTFOUND Package /path/to/you-need-me/ not found

パスをもう一度確認し、依存関係の.git/ディレクトリを指していることを確認します。

成功

次のようなものが得られるはずです。

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

それについてのブログエントリを書いてください: パッケージを登録する前にbower.jsonをローカルでテストする

23
Édouard Lopez