如何部署 Bower 安装的软件包?

Posted

技术标签:

【中文标题】如何部署 Bower 安装的软件包?【英文标题】:How to deploy packages installed by Bower? 【发布时间】:2015-09-14 10:05:52 【问题描述】:

我已经使用 Bower 安装了一些包,但我不知道如何部署它们。

例如,我的第一个想法是创建一个将它们连接起来的 Gulp 任务 - 我用我的 Angular 包做到了这一点:

gulp.task('libs', function () 
    'use strict';
    return gulp
        .src([
            './public/assets/libs/angular/angular.min.js',
            './public/assets/libs/angular-animate/angular-animate.min.js',
            './public/assets/libs/angular-routes/angular-route.min.js'
        ])
        .pipe(concat('libs.js'))
        .pipe(uglify())
        .pipe(gulp.dest('public/dist'));
);

然而,虽然上面的这些包非常简单,但其他一些包(准确地说是 Bootstrap 和 jQuery)附带了我不需要的源。我应该将bootstrap.min.cssjquery.min.js 复制到我的dist 文件夹吗?

坦率地说,我可以只包含来自 CDN 的所有这些文件,但我还不明白为什么要使用 Bower(我一直在学习使用 Bower 的教程)。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

首先,我认为这是使用 Bower 的原因。

在“过去”中,在您的应用程序中包含特定 javascript 库(比如说 jQuery)的方法是访问 jQuery 网站,单击下载链接,然后将下载的 .zip 文件移动到您的项目目录并解压。然后,您将添加一个包含该库的 script 标记。

包含 JavaScript 库(仍然使用 jQuery 作为示例)的“现代”方式是简单地运行 bower install jquery --save,这将 a)将 jQuery 添加到您的 bower.json 文件中,该文件列出了您的所有应用程序的依赖项和 b)抓取 jQuery 文件并将它们放在适当的位置。如果你使用了一种叫做注入的东西,你可能已经遇到过,也可能没有遇到过,你甚至不必担心script 标签,因为这是由你的构建系统处理的。

(顺便说一句,我认为 Bower 的灵感来自于其他语言的包管理工具,例如 RubyGems for Ruby,据我所知,这些工具早于 JavaScript 世界中的任何此类工具就已经存在。您可能会感兴趣看看类似的工具也是如此。)

其次,我会回答你关于部署的问题。

这取决于您的部署位置。我个人在所有生产环境中都使用 Heroku。我不会将我的 JavaScript 供应商库检查到 Git 中,因为将构建工件保留在版本控制中并不是一个好主意。相反,我只需检查我的bower.json,Heroku 能够检测到。 Heroku 在生产环境中运行bower install,它会引入所有适当的库文件。这就是我的部署的工作方式,尽管它不是唯一可以完成的方式。

如果您想知道如何部署到特定平台,最好编辑此问题或创建一个单独的问题,其中包含有关您的部署环境的更多详细信息。

【讨论】:

我想你回答了我的问题:本质上,整个 bower_components 结构也将存在于服务器上。顺便说一句,我曾经使用过 RubyGems,当然我目前也在使用 NPM,但是虽然不上传 node_modules 并在服务器上运行 npm install 似乎很简单,但 Bower 也没有。 如果我理解正确,在我的视图中包含某些文件时,我是否应该只指向我的bower_components 目录?

以上是关于如何部署 Bower 安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章

bower 软件包更新使应用程序崩溃 - 如何回滚

如何安装并使用bower包依赖工具

你如何卸载所有的凉亭包?

Bower——客户端技术的软件管理器

bower

bower学习总结