有没有任何标准化的方式来处理Bower臃肿?

时间:2014-04-08 16:23:41

标签: javascript gruntjs bower

我刚刚完成了一个网站构建,我们必须将我们的文件提供给第三方以与他们的系统集成。构建必须是自包含的,因为会有多个各方具有不同级别的能力来部署它们。

我遇到的问题是Bower在下载我的Javascript库时正在安装一切都在阳光下并且并不总是包含dist/文件夹或库的缩小版本因此,在删除非必要文件以进行部署时,通常很难找到要保留的正确文件。

最初考虑将所有内容保留的选项,但它将文件大小从4.5mb增加到超过15mb。如果我们直接部署到服务器,这可能是我可能采取的选择,但是包含依赖关系,自述文件,进一步的grunt和bower文件等包含大量代码的危险似乎太大了。

如果我们要对这些系统进行标准化,那么系统本身应该以某种方式标准化,以阻止我们手动浏览组件目录,删除文件和测试以确保没有任何中断。

我缺少一个构建阶段吗?我是否应该使用一些繁琐的任务来将所有这些文件缩小为单个js文件,我如何确定此步骤不会向项目添加错误或将错误版本的文件拖入我的mega- js文件?

1 个答案:

答案 0 :(得分:1)

我将所需文件挑选到我控制版本的另一个位置。我gitignore bower_componants,每次安装前端软件包时都会做这个樱桃选择,比如

gulp bower-cherry-pick --package jquery

它在内部使用https://github.com/ck86/main-bower-files,并在采摘樱桃时自动包含bower.json和.bower.json

以下是bower-cherry-pick的示例,在你挑选了多个凉亭包之后,有一个重要的注意事项:我们使用我们挑选的东西并专门检查git,同时捆绑并包含在源代码中。 An example way of doing this is here我只是将main-bower-files插件重新命名为de-bloated(或者Cherry-picking)位置并捆绑,缩小和包含。

仅在安装新软件包时使用bower_components,并希望获得验证,排序/排序&记录保持凉亭在安装新包时提供的功能。在所有其他时间使用樱桃挑选的文件。两全其美。