Bowerのデフォルトのコンポーネントフォルダを変更するにはどうすればよいですか?


475

twitterのbowerを使った新しいプロジェクトを作っています。component.jsonjqueryのようにすべての依存関係を維持するためにを作成しました。次にbower install、という名前のフォルダーにすべてをインストールするコマンドを実行しますcomponents。しかし、コンポーネントを別のフォルダにインストールする必要がありますpublic/components

私はcomponents.jsonを次のように編集してみました:

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

または:

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

https://github.com/twitter/bower/pull/94に示すように、機能しません。

回答:


930

次の内容で、(ホームディレクトリではなく)プロジェクトルートにBower構成ファイルを.bowerrc作成します。

{
  "directory" : "public/components"
}

bower installもう一度実行します。


4
私は見ることしかできないログを変更The value of the json property from .bowerrc is no longer usedし、"directory"プロパティはすべて問題ないと思います。正しい?github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin 2013

11
これは私にはうまくいきません。.bowerrcでは機能しますが、bower.jsonでは機能しません。これはそのような基本的な機能のようです...
elliottregan 2014年

148
なぜこれがbower.jsonファイルに入れられないのか興味があります。特に、プロジェクトごとの設定の場合は特にそうです。
Hayden

8
ドキュメントに基づいて、それはbower.jsonではなく.bowerrcにある必要があります。奇妙な... bower.io/#custom-install-directory
joemfb

20
Windowsでは、「。」で始まるファイルを作成するには、単に「。」で終わるファイルを作成します。つまり、「。bowerrc」とだけ呼んでください。
PeteK68

76

編集.bowerrcしてデフォルトのインストールパスを設定するだけでなく、さまざまなファイルタイプのカスタムインストールパスを設定することもできます。

bower-installerと呼ばれるノードパッケージがあり、代替インストールパスを管理するための単一のコマンドを提供します。

走る npm install -g bower-installer

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"
      ]
    }
  }
}

次のコマンドを実行します。 bower-installer

これはなどにインストールさcomponents/jquery-ui/themes/start/jquery-ui.cssれます./src/css


4
これは有望に見えますが、bower_componentsディレクトリはまだ作成され、入力されています。:(
ベン

亭のバージョンは?
lfender6445 2015

パッケージの性質のようです。ここでgithub.com/blittle/bower-installer/issuesに問題を開くか、インストール後にディレクトリを削除するbashスクリプトを記述できます。
lfender6445 2015年

1
意味がないと思います。完全なgitリポジトリと依存関係をダウンロードし、特定のファイルをコピーペーストするだけのパッケージが欲しくありません... Ctrl + Cを自分で押すことができます。特定のファイルのみがダウンロードされることを願っています。
2015年

そうですね。この場合、私は.bowerrcを指定し、プロジェクトを単純にするためにpublic / bowerまたはpublic / vendorをポイントしています。
lfender6445

61

Windows 10でも同じ問題が発生しました。これが私の問題を修正したものです

  1. bower_componentsルートフォルダーで削除する
  2. .bowerrcルートにファイルを作成する
  3. ファイルにこのコードを書きます {"directory" : "public/bower_components"}
  4. 実行する bower install

パブリックフォルダーにbower_componentsフォルダーが表示されます。


23

言及する価値がある何か...

上記の他の貢献者が指摘したように.bowerrc、JSON を含むファイルを使用する

{ "directory": "some/path" }

が必要です-ただし、そのファイルの作成中にWindowsで問題が発生する可能性があります。Windowsから「ファイル名」の追加を促すメッセージが表示された場合は、メモ帳++などのテキストエディター/ IDEを使用するだけです。

JSONを名前のないファイルに追加し、それを.bowerrcとして保存します。

たぶん簡単な仮定ですが、これが不必要な頭痛を他の人に救ってくれることを願っています:)


18
Windowsでは、「。」で始まるファイルを作成するには、単に「。」で終わるファイルを作成します。つまり、「。bowerrc」とだけ呼んでください。
PeteK68

あなたはあまりにもgitのはbashでそれを行うことができ、単純に入力します。echo >> .bowerrc
レアンドロRR

7

入れてみてくださいcomponents.jsonでファイルをpublic再実行し、むしろルートディレクトリよりも、あなたのアプリケーションのディレクトリbower installアプリのホームディレクトリにこれを試して...:

cp components.json public
cd public
bower install

1
方法かもしれませんが、それを行う正当な方法はありますか?病気はまだこれを答えとして数えます。
Adam Ramadhan、

2
あなたはbashスクリプトを書くことができbower.sh..あなたはそれが上記のコマンドを生成する「公開components.json `のようにインストールしたいディレクトリを付加する
hagope

2
これらの回答はどちらも非常にハックに聞こえますが、明らかに望ましくありません
Jay

-3

こんにちは私は同じ問題を抱えており、この方法を解決します。

Windowsユーザーとvsは.bowerrcファイルを作成できません。

コマンドで任意のフォルダに移動

たとえば.bowerrcファイルを含むパッケージをインストールします

bower install angular-local-storage

このプラグインには.bowerrcファイルが含まれています。それをコピーしてプロジェクトに移動し、このファイルを貼り付けます。

ビジュアルスタジオ-ソリューションエクスプローラー-すべてのファイルを表示し、プロジェクトで見られた.bowerrcファイルを含めます

私はこの方法を解決します:)


あなたが使用することができCygwinたりCmder、端末を作成し.bowerrcたファイルを。
Francis.TM、2015

4
任意の名前でファイルを作成し、PowerShellまたはコマンドプロンプトを開いて名前を変更するだけです。
TrueWill、2015

ファイル名を「.name」として指定すると、Windowsでドットファイルを作成できます。-これが利用できるようになってから何年も経った今でも、これを知っている人は多くありません:)
Alex Paven
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.