永远忽略与凉亭的依赖

我正在下载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度”文件复制到目标。