如何部署 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.css
和jquery.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 安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章