永远忽略与凉亭的依赖
我正在下载angular,angular引导和bootstrap与凉亭。 Bootstrap有一个依赖于jquery的过程中安装。 但我不需要它在我的项目中,因为我只使用bootstrap的CSS。
所以我试图永久删除与jquery的依赖关系
bower uninstall jquery --save
它正在卸载jquery,但下一次我做bower update
,它再次下载。
有没有办法告诉鲍尔永久跳过依赖?
编辑:我希望有这样的事情:
"resolutions": { "jquery": "no, thanks" }
拉请求#1394增加了对该function的官方支持 ,并且在1.6.3及更高版本的Bower版本中提供。 用bower -v
检查你的版本,运行npm install -g bower
升级。
作为参考,请参阅.bowerrc
官方说明文件 。 如果这不适合你,请给鲍尔提出一个问题,因为这是一个错误。
我们在.bowerrc
使用它,如下所示:
{ "ignoredDependencies": [ "bootstrap", "bootstrap-sass", "bootstrap-sass-official" ] }
我们也有类似的情况,我们的Backbone在其bower.json
依赖于bower.json
,但是我们使用的是Lo-Dash,所以Bower每次安装都会不必要的下拉Underscore。 我们已经自动检查第三方许可证的合规性,所以我们不想要任何我们没有实际使用的东西。
我意识到这不完全是他们的意思,但鲍尔的安装钩子可以用来清理不必要的代价后安装(至less直到鲍尔得到你所暗示的那种“不,谢谢”的决议)。 在你的.bowerrc
:
{ "directory": "app/bower_components", "scripts": { "postinstall": "rm -rf app/bower_components/underscore" } }
这有点破解,但工作。
你也可以在你的bower.json
文件中做一些事情:
{ "dependencies": { ... "bootstrap": "^3.2.0" } "overrides": { "bootstrap": { "dependencies": [] } } }
这意味着:删除所有的boostrap的依赖,这是你想要的,因为jquery是唯一的(你可以检查与bower info bootstrap
)
把它添加到你的.gitignore如果你提交你的依赖关系。 否则,因为它没有任何区别。 你应该只使用你所需要的,而忽略其余的。
上面的答案是正确的,但另一个解决scheme是使用这个答案中解释的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'] } },
鲍尔仍然会下载jquery不幸的是,但至less你可以告诉它不包含在HTML src中。
免责声明:这并不能解决你的问题,但它对我有帮助,所以也许会帮助其他人。
我正在使用grunt-bower-task将文件拖到lib目录中。 我想排除“angular”,只包括“angular.js”。 我的一个依赖之处在于“angular度”。 在我的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度”文件复制到目标。