为什么main-bower-files会过滤一些包?

时间:2015-08-21 18:38:05

标签: gulp bower

我有一个gulp任务,旨在将bower依赖项复制到另一个文件夹,但只有一部分依赖项正在匹配。

这是一个简化版本的任务,只打印出匹配的路径:

gulp.task('list-dependencies',function() {
  gulp.src(mainBowerFiles('**/*'), { base: './bower_components' })
    .pipe($.print());
});

这是bower.json文件内容:

bower.json

    {
      "name": "app",
      "private": true,
      "dependencies": {
        "bootstrap": "3.0.0",
        "jquery": "1.10.2",
        "modernizr": "~2.8.3",
        "angular": "~1.4.4",
        "angular-ui": "~0.4.0",
        "angular-route": "~1.4.4"
      }
    }

这是bower_components文件夹的列表:

$ ls bower_components/
angular  angular-route  angular-ui  bootstrap  jquery  modernizr

outut:

[13:30:08] Starting 'list-dependencies'...
[13:30:08] Finished 'list-dependencies' after 27 ms
[gulp] bower_components\jquery\jquery.js
[gulp] bower_components\angular\angular.js
[gulp] bower_components\angular-route\angular-route.js
[gulp] bower_components\bootstrap\dist\js\bootstrap.js
[gulp] bower_components\bootstrap\dist\css\bootstrap.css

如您所见,angular-ui和modernizr并未列出。有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

Bower有一个在bower.json中定义“主要”文件的概念。丢失的软件包是由于这些软件包不包含定义主文件的bower.json文件。要使main-bower-files插件正常工作,您必须在凉亭文件中define override或作为主播文件的参数。