删除 bootstrap.js 和 jquery 与 main-bower-files 和 angular bootstrap ui 的依赖关系

removing bootstrap.js and jquery dependencies with main-bower-files and angular bootstrap ui

Bower 和 main-bower-files 很棒,但是,当将它们与 Angular Bootstrap UI 一起使用时,installed/included 的东西比需要的多。

基本上:Angular Bootstrap UI,取代了对 bootstrap.js 的需要,它是 jquery 依赖项。然而,当安装 bootstrap 时,jquery 被安装,然后我的 gulp 任务使用 main-bower-files,在我的 html 文件中包含 jquery 和 bootstrap.js。

有没有办法告诉 bower,and/or main-bower-files and/or Bootstrap,不再需要 jquery 和 bootstrap.js .

到目前为止,我尝试在 bower_components/bootstrap/bower.json 中评论 jquery 依赖项和 dist/js/bootstrap.js 行,但文件仍被包含在内。

1) 切换到我推荐的 wiredep。然后你可以这样做:

gulp.task('wiredep', function () {
  var wiredep = require('wiredep').stream;
  gulp.src('app/*.html')
    .pipe(wiredep({
      directory: 'app/bower_components',
      exclude: ['bootstrap']
    }))
    .pipe(gulp.dest('app'))
});

请注意,以上内容将删除整个 bootstrap,而不仅仅是其 .js 文件。 exclude 数组还可以包含正则表达式,如果您想保留实例样式,这可能是需要的。

并且在您的 HTML 文件中(对于 javascript):

js 替换为要注入样式的 css

2) 覆盖 Bootstrap 的 bower 主文件:为 main-bower-files 提供以下选项:

{
  "overrides": {
    "bootstrap": {
      "main": [
        // files you want to include
      ]
    }
  }
}

您必须检查您不想排除的内容并将它们添加到上面的 main 数组中。

另请参阅:https://github.com/ck86/gulp-bower-files/issues/33