如何设置 Grunt 以排除未使用的 Bower 库

How to set up Grunt to exclude unused Bower libraries

我有一个 grunt/bower/angular 项目,其中包含 angularjs 等依赖项。 当 Bower 安装 angularjs 依赖项或任何其他依赖项时,它会比我想要包含在我的构建中的更多。

例如,当bower安装angularjs时,bower_components目录包含angular.js和angular.min.js。我只想使用这两个脚本之一。

我可以设置 Grunt 来构建我的项目,并且只包含我想要的来自 bower_components 的库和资源吗?如果是,并且它涉及在 Gruntfile.js 中指定库,在这种情况下使用 Bower 是否有优势?

是的,您可以使用 grunt-bower 来完成这项工作。您可以指定要为特定包导入哪些文件。

这是一个完整的 Fancybox 包示例:

bower: {    
    dest:       'source/assets/images',
    js_dest:    'source/assets/js',
    css_dest:   'source/assets/css',
    fonts_dest: 'source/assets/fonts',
    options:    {
        expand:                false,
        keepExpandedHierarchy: false,
        packageSpecific:       {
            'fancybox': {
                files: [
                    'source/blank.gif',
                    'source/fancybox_loading.gif',
                    'source/fancybox_loading@2x.gif',
                    'source/fancybox_overlay.png',
                    'source/fancybox_sprite.png',
                    'source/fancybox_sprite@2x.png',
                    'source/jquery.fancybox.js',
                    'source/jquery.fancybox.css',
                    'source/helpers/jquery.fancybox-thumbs.css',
                    'source/helpers/jquery.fancybox-thumbs.js'
                ]
            }
        }
    }
}