2014-01-05 2 views
45

角度のあるアングルブーツストラップとブートストラップをバワーでダウンロードしています。ブートストラップはプロセスにインストールされているjqueryに依存しています。しかし、私はブートストラップのCSSだけを使用しているので、私は自分のプロジェクトでそれを必要としません。 は、ボーアとの依存関係を永久に無視します。

は、だから私は、永久にこれはjqueryのをアンインストールしています

bower uninstall jquery --save 

でjqueryの上で依存関係を削除しようとしましたが、私はbower updateを作る次回は、それが再びダウンロードです。

bowerに依存関係を恒久的にスキップさせる方法はありますか?

編集:私はこのような何かがあったことを望む:あなたの依存関係をコミットする場合

"resolutions": { 
    "jquery": "no, thanks" 
} 

答えて

65

Pull request #1394が追加されました。公式サポートこの機能は、バージョン1.6.3以降で提供されています。 bower -vでバージョンを確認し、アップグレードするにはnpm install -g bowerを実行してください。

参考のため、.bowerrc official specification documentをご覧ください。これがうまくいかない場合は、バグであるのでfile an issue with bowerを入力してください。

私たちは、次のような私たちの .bowerrcでこのようにそれを使用

{ 
    "ignoredDependencies": [ 
    "bootstrap", 
    "bootstrap-sass", 
    "bootstrap-sass-official" 
    ] 
} 
+0

これはまだまだマージされていませんか? – Vic

+0

私はPRでこの問題を抱えていることを確認できます。 https://github.com/bower/bower/pull/1394#issuecomment-73864285 – streetlogics

+1

バワー1.7.0では動作しません。@pierrefevrierの回答は私を助けましたhttp://stackoverflow.com/a/32016391/ 232342 –

5

は、あなたの.gitignoreに追加します。それ以外の場合はそのままにしておいてください。あなたは必要なものだけを使い、残りは無視するべきです。

+1

(あなたがbower info bootstrapに確認することができます)jqueryのは一つだけであるので、あなたが望むものである、すべてのブートストラップの依存関係を削除私はすでに依存関係をコミットしていません。私はそれをスキップすることは不可能であると私は理解し、私はこれのように残します。ありがとう –

+1

私はこれが行く方法だとは思わない...シュリンクラップが非常に必要です – stevemao

+1

スクリプトをバンドルするときに違いがありますが、CDNから読み込まれたライブラリは除外します。バウアーを使ってjsアプリケーションにバンドルしている角度ライブラリーをインストールしましたが、私はgoogle CDN経由で角度を提供しています。この踏み台を無視してバワーを持つことで、バンドルが簡単になります。 – jminuscula

25

Backboneはbower.jsonのUnderscoreに依存していたのと同様の状況でしたが、代わりにLo-Dashを使用していましたので、Bowerは各インストールでUnderscoreを不必要にプルダウンしていました。サードパーティのライセンスコンプライアンスのチェックは自動化されているため、実際には使用しないものは欲しません。

私はこれがまさにそのためのものではないが、Bowerのinstall-hooksは、少なくともBowerがあなたに示唆したような「いいえ」の解決策を得るまでは、不要なdepsを取り除くために使うことができる。あなたの.bowerrcで:

{ 
    "directory": "app/bower_components", 
    "scripts": { 
     "postinstall": "rm -rf app/bower_components/underscore" 
    } 
} 

それはハッキングのビットだが、動作します。

+3

興味深い解決策!しかし、それを設定せずにwiredepのようなツールを使用することの問題は解決しません:( – stevemao

1

上記の答えは正しいですが、追加のソリューションは、この答えで説明したようにwiredep使用することです:

grunt-bower-install: exclude certain components

grunt-wiredepをインストールした後、Grunt.jsにこれに類似するものを追加して、jqueryの注入を除外することができます:

// Automatically inject Bower components into the app 
wiredep: { 
    options: {}, 
    app: { 
    src: ['<%= my.app %>/index.html'], 
    exclude: ['bower_components/jquery'] 
    } 
}, 

残念ながら、Bowerはjqueryをダウンロードしますが、少なくともHTML srcには含まれていないことがわかります。

1

免責事項:これはあなたの特定の問題を解決するものではありませんが、それは私の助けになりました。多分それは他の人に役立つでしょう。

私はgrunt-bower-taskを使用してファイルをlibディレクトリにプルしています。私は「角度」を除外し、単に「angular.js」を含めたいと思っていました。私の依存関係の一つが「角張っている」。私のbower.jsonでは私が今持っている:私のgruntfile.js

{ 
    "name": "myapp", 
    "version": "0.0.1", 
    "dependencies": { 
    "angular.js": "1.3.15", 
    "angular-bootstrap": "0.13.0", 
    "angular-cookies": "1.3.15", 
    "angular-storage": "0.5.0", 
    "angular-ui-router": "0.2.15", 
    "mjolnic-bootstrap-colorpicker": "2.1" 
    }, 
    "exportsOverride": { 
    "angular": { 
     "dump": "*.xxx" 
    }, 
    "angular.js": { 
     "js": [ "*.js", "*.js.map" ], 
     "css": "*.css" 
    } 
    }, 
    "resolutions": { 
    "angular": "1.3.15" 
    } 
} 

を私は持っている:

bower: { 
    install: { 
     options: { 
      targetDir: './lib', 
      layout: 'byType', 
      install: true, 
      cleanTargetDir: true, 
      cleanBowerDir: false 
     } 
    } 
}, 

これは、先にコピーされることから、「角度」のファイルを停止します。

13

あなたbower.jsonファイルでも行うことができます何か:これは意味

{ 
    "dependencies": { 
    ... 
    "bootstrap": "^3.2.0" 
    } 
    "overrides": { 
    "bootstrap": { 
     "dependencies": [] 
    } 
    } 
} 

+0

これはBowerによって実際にサポートされていませんか? – JKillian

+0

はい、これは私のコードのスニペットです。 – pierrefevrier

+0

私が知る限り、それはまだ仕様の一部ではありません:https://github.com/bower/bower.json-spec/pull/27 – JKillian

関連する問題