在我们开始前先介绍下流程:

  1. 安装node.js。
  2. 安装npm。
  3. 全局安装bower。
  4. 根目录创建 .bowerrc (可选)
  5. 在项目中安装bower 并创建 bower.json 文件,运行 bower命令将需要的包安装,然后检查 bower.json 。
  6. 编辑 gulpfile.js 文件 将任务写入。
  7. 在 resources/assets 目录下创建一个.less文件 以待编译使用。
  8. 先运行 gulp copyfiles 命令将文件复制到对应的路径下,然后运行 gulp 进行编译 合并等任务。

1 Bower是什么?

bower是一个包管理工具 只不过它面向前端。

1.1 安装

1.1.1 安装node.js

在我们安装Bower前应该先安装node.js,因为安装Bower我们需要用到npm,首先先看看我们是否安装了npm:

npm --version

如果没有输出版本号,那么可以到nodejs的官网去下载安装,或者通过 homebrew 安装,具体的Google一下 很全。

1.1.2 安装Bower

当安装了npm后可以通过npm全局安装Bower

sudo npm install -g bower

1.1.3 安装Gulp

通过npm全局安装gulp

sudo npm install -g gulp

1.2 引入Bootstrap

1.2.1 在项目根目录创建一个 .bowerrc 文件(可选)

这是bower的一个步骤,目的是告诉Bower 下载的文件放到什么地方,我们创建并编辑bowerrc文件:

{
"directory": "vendor/bower_dl"
}

↑ 这一步是可选的,如果没有指定路径的话 bower会自动在项目根目录创建一个bower_dl文件夹存放下载的文件,

1.2.2 在项目本地安装Bower

sudo npm install bower

1.2.3 在项目根目录创建 bower.json 文件

bower.json文件时管理依赖包的,它跟composer.json类似,我们编辑它的内容:

{
"name": "learn_project",
"description": "Learn Laravel",
"ignore": [
"**/.*",
"node_modules",
"vendor/bower_dl",
"test",
"tests"
]

1.2.4 开始引入前端文件

上面的配置完成后我们就可以引入前端资源了:

bower install jquery bootstrap --save

完事儿之后看一眼 bower.json 是否添加了两个依赖:

{
"name": "learn_project",
"description": "Learn Laravel",
"ignore": [
"**/.*",
"node_modules",
"vendor/bower_dl",
"test",
"tests"
],
"dependencies": {
"jquery": "^3.2.1",
"bootstrap": "^3.3.7"
}
}

的确添加了两个依赖 一个jQuery 一个bootstrap,然后运行bower update命令就可以下载到 /vendor/bower_dl 咯。


2 Gulp

Gulp是一个前端的工作流工具,它可以让你在开发中变得很轻松。接下来我们就会使用到Gulp。

2.1 编写一个less文件

我们先在 resource/asset/ 目录下创建一个 .less 文件,文件名随你命名,然后编辑此文件如下:

@import "bootstrap/bootstrap";
@import "//fonts.googleapis.com/css?family=Roboto:400,300"; @btn-font-weight: 300;
@font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif; body, label, .checkbox, label {
font-weight: 300;
}

↑ 在上面代码中 我们引入了bootstrap 但是它现在还没有引入到正确的路径中,我们下面就要使用Gulp将其拷贝到正确的位置。

2.2 编辑gulpfile.js

var gulp = require('gulp');
var elixir = require('laravel-elixir'); /*
|--------------------------------------------------------------------------
| Elixir Asset Management
|--------------------------------------------------------------------------
|
| Elixir provides a clean, fluent API for defining some basic Gulp tasks
| for your Laravel application. By default, we are compiling the Less
| file for our application, as well as publishing vendor resources.
|
*/ /**
* 拷贝所需要的文件
*/
gulp.task("copyfiles", function(){
// 拷贝jQuery到resources等待合并
gulp.src("vendor/bower_dl/jquery/dist/jquery.js")
.pipe(gulp.dest("resources/assets/js/"));
// 拷贝bootstrap到resources,提供给layout.less引入。
gulp.src("vendor/bower_dl/bootstrap/less/**")
.pipe(gulp.dest("resources/assets/less/bootstrap"));
// 拷贝bootstrap.js到resources等待合并
gulp.src("vendor/bower_dl/bootstrap/dist/js/bootstrap.js")
.pipe(gulp.dest("resources/assets/js/"));
// 拷贝fonts到public
gulp.src("vendor/bower_dl/bootstrap/dist/fonts/**")
.pipe(gulp.dest("public/assets/fonts"));
}); elixir(function(mix) {
// 合并js文件
mix.scripts(['js/jquery.js', 'js/bootstrap.js'],
// 合并到哪里
'public/assets/js/app.js',
// 从哪个路径搜索这些需要合并的文件
'resources/assets'
); // 编译less文件
mix.less('layout.less','public/assets/css/layout.css');
});

2.3 运行Gulp

我们先运行 gulp copyfiles 来将需要用到的文件拷贝到相应的路径下:

gulp copyfiles

然后运行 gulp 来进行合并和编译:

gulp

当两个命令都运行完 你就可以看看你的public目录和resources目录是不是有所变化。


3 使用编译好的前端文件

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/assets/css/layout.css">
</head>
<body>
<script src="/assets/js/app.js"></script>
</body>
</html>

Bower和Gulp集成前端资源的更多相关文章

  1. 基于Laravel开发博客应用系列 —— 使用Bower+Gulp集成前端资源

    本节我们将讨论如何将前端资源集成到项目中,包括前端资源的发布和引入.本项目将使用 Bower 和 Gulp 下载和集成jQuery.Bootstrap.Font Awesome 以及 DataTabl ...

  2. Django项目引入NPM和gulp管理前端资源

    前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...

  3. 前端资源多个产品整站一键打包&包版本管理(一)

    来新公司工作的第五个月.整站资源打包管理也提上了日程. 问题: 首先.什么是整站的打包管理呢? 我们公司的几个重要产品都在同一个webapp里面,但是,不同的开发部门独立开发不同的产品,长期以来,我们 ...

  4. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  5. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  6. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  7. 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)

    前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...

  8. 前端资源多个产品整站一键打包&包版本管理(三)—— gulp分流

    问题: 当我们一个工作台里面有好几个项目的时候,我们要为项目的前端资源进行打包,但是,gulpfile只有一个,如果我们把所有的打包都放在同一个文件里面,首先文件会越来越大,而且不便于管理,这时,我们 ...

  9. Yeoman+Bower+gulp web前端自动化工作流程(初级教程)

    Yeoman包括了三个部分yo(脚手架工具).grunt/gulp(构建工具).bower(包管理器).听说gulp更容易上手,所以我就没用grunt而选的gulp 什么是开发流程? 在我看来一个完整 ...

随机推荐

  1. 项目启动报错:No suitable driver found for jdbc:oracle:thin:@192.168.7.146:1521:oracle

    No suitable driver found for jdbc:oracle:thin:@192.168.7.146:1521:oracle 这个错误的原因主要有以下几方面的原因: 1. url配 ...

  2. JBoss类加载机制 ClassLoadingConfiguration

    http://sylven.iteye.com/blog/577063 类仓库优先级从低到高 1.classpath.lib目录 2.由已部署的应用程序的所有类./server/{server_nam ...

  3. [机器学习实战] k邻近算法

    1. k邻近算法原理: 存在一个样本数据集,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对 ...

  4. SqlCommandBuilder的作用

    最近看一个案例,关于如何向数据库传数据,颇有发现. 以前我的数据都是采用Sql代码用SqlCommand一条一条语句的传入数据库. 但是今天发现有更好的方法. 代码如下: SqlConnection ...

  5. Tcp Ip -- tcpdump win窗口大小

    问题介绍 今天,有内部模块与外部系统断连. (外部系统smgw,内部接口interface) smgw <----> interface 有消息交互. 通过tcpdump -xns0 po ...

  6. python 高级语法

    #coding:utf-8 #定义一个装饰器函数 def doc_func(func): #包裹函数(闭包) def warpfunc(): #做一些额外的事情 print "%s call ...

  7. 爬虫1:get请求的翻页及思考

    刚开始接触爬虫,理解还不透彻,说一些初始阶段的想法{1.因为get请求的方式(请求体无数据,不能通过Request.add_data()函数来添加数据,实现对网址翻页:需要直接对网址进行操作来实现翻页 ...

  8. 检查SSD磁盘是否开启了TRIM指令

    fsutil behavior QUERY DisableDeleteNotify 如果查询结果是“DisableDeleteNotify = 0”,代表SSD已经支持并启用Trim指令:如果提示为“ ...

  9. html5-表单常见操作

    <form  autocompelate="on" id="from1"><!--常用属性-->邮件:<input type=&q ...

  10. memcache基础知识-stats参数

    安装memcache: #tar -xvf libevent-1.4.13-stable.tar.gz#cd libevent-1.4.13-stable#./configure && ...