Bowerで、angular、angular-bootstrapおよびbootstrapをダウンロードしています。 Bootstrapは、プロセスにインストールされているjqueryに依存しています。ただし、ブートストラップのcssのみを使用しているため、プロジェクトでは必要ありません。
だから私は永久にjqueryの依存関係を削除しようとしました
bower uninstall jquery --save
Jqueryがアンインストールされますが、次回bower update
を作成するときに、再度ダウンロードされます。
依存関係を完全にスキップするようにbowerに指示する方法はありますか?
編集:私はこのようなものがあればいいのに:
"resolutions": {
"jquery": "no, thanks"
}
プルリクエスト#1394 追加この機能の公式サポート。bowerバージョン1.6.3以降に存在します。 bower -v
でバージョンを確認し、npm install -g bower
を実行してアップグレードします。
参考のため、 .bowerrc
公式仕様ドキュメント を参照してください。これがうまくいかない場合は、バグですので bowerに問題を報告してください をお願いします。
次のように.bowerrc
でこのように使用します:
{
"ignoredDependencies": [
"bootstrap",
"bootstrap-sass",
"bootstrap-sass-official"
]
}
バックボーンがアンダースコアに依存している_bower.json
が、代わりにLo-Dashを使用しているため、Bowerはインストールのたびにアンダースコアを不必要にプルダウンしていました。サードパーティのライセンスコンプライアンスの自動チェック機能があるため、実際に使用しないものは必要ありません。
私はこれが彼らが意図したものではないことを理解していますが、Bowerの install-hooks は、インストール後に不要なdepsをきれいにするために使用できます(少なくともBowerが「感謝なし」の解決を得るまであなたがほのめかした)。あなたの.bowerrc
:
{
"directory": "app/bower_components",
"scripts": {
"postinstall": "rm -rf app/bower_components/underscore"
}
}
ちょっとしたハックですが、動作します。
bower.json
ファイルでもできること:
{
"dependencies": {
...
"bootstrap": "^3.2.0"
}
"overrides": {
"bootstrap": {
"dependencies": []
}
}
}
これは、jqueryが唯一のものであるため、boostrapの依存関係をすべて削除します(bower info bootstrap
で確認できます)。
依存関係をコミットする場合は、.gitignoreに追加します。それ以外の場合は、違いがないのでそのままにしておきます。必要なものだけを使用し、残りは無視する必要があります。
免責事項:これはあなたの特定の問題を解決するものではありませんが、私の助けになったので、おそらく他の人にも役立つでしょう。
Grunt-bower-taskを使用して、ファイルをlibディレクトリにプルします。 「angular」を除外し、「angular.js」を含めるだけでした。私の依存関係の1つは、「角度」を引き出すことでした。私のbower.json
私は今持っています:
{
"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"
}
}
私のgruntfile.js
私が持っています:
bower: {
install: {
options: {
targetDir: './lib',
layout: 'byType',
install: true,
cleanTargetDir: true,
cleanBowerDir: false
}
}
},
これにより、「角度のある」ファイルが宛先にコピーされなくなります。
上記の答えは正しいですが、追加の解決策は、この答えで説明されているように、wiredepを使用することです。
grunt-bower-install:特定のコンポーネントを除外
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に含まれないように指示できます。