我正在使用凉亭下载角度,角度引导和引导程序。 Bootstrap依赖于安装在进程中的jquery。但我在我的项目中不需要它,因为我只使用bootstrap的CSS。
所以我试图用
永久删除对jquery的依赖bower uninstall jquery --save
它正在卸载jquery,但下次我创建bower update
时,会再次下载它。
有没有办法让bower永久跳过依赖?
编辑:我希望有这样的事情:
"resolutions": {
"jquery": "no, thanks"
}
答案 0 :(得分:69)
Pull request #1394为此功能添加了官方支持,并在bower版本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"
]
}
答案 1 :(得分:25)
我们遇到过类似的情况,我们让Backbone在其bower.json
中依赖于Underscore,但我们正在使用Lo-Dash,因此Bower在每次安装时不必要地拉下Underscore。我们对第三方许可证合规性进行了自动检查,因此我们并不想要任何我们不能实际使用的内容。
我意识到这并不是他们的意思,但Bower的install-hooks可用于在安装后清除不需要的deps(至少在Bower获得排序之前) "不,谢谢"你暗示的决议)。在.bowerrc
:
{
"directory": "app/bower_components",
"scripts": {
"postinstall": "rm -rf app/bower_components/underscore"
}
}
这有点像黑客,但有效。
答案 2 :(得分:13)
您可以在bower.json
文件中执行以下操作:
{
"dependencies": {
...
"bootstrap": "^3.2.0"
}
"overrides": {
"bootstrap": {
"dependencies": []
}
}
}
这意味着:删除所有boostrap的依赖项,这是你想要的,因为jquery是唯一的(你可以查看bower info bootstrap
)
答案 3 :(得分:5)
如果您提交依赖项,请将其添加到.gitignore。否则保留它,因为它没有任何区别。你应该只使用你需要的东西而忽略其余的东西。
答案 4 :(得分: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中。
答案 5 :(得分:1)
免责声明:这不能解决您的特定问题,但它对我有帮助,所以也许它会帮助其他人。
我正在使用grunt-bower-task将文件拉入lib目录。我想排除“angular”,只包括“angular.js”。我的一个依赖是拉入“有角度”。在我的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
}
}
},
这会阻止“angular”文件被复制到目的地。