使用Laravel框架进行开发,在实现前后端的分离的时候,需要对前端资源进行构建。使用gulp可以实现对前端资源的构建,同时能提供很好的开发体验。本文将详细介绍如何使用gulp构建前端资源。
## 1. 安装gulp
使用npm安装gulp,执行以下命令:
```
npm install gulp-cli -g
npm install gulp -D
```
## 2. 目录结构
建立以下目录结构:
```
├── resources/
| └── assets/
| ├── js/
| ├── css/
| └── images/
└── gulpfile.js
```
在`resources/assets`目录下,放置公共的前端资源,如js文件、css文件和images文件。
## 3. 编写gulpfile.js文件
在项目根目录下编写`gulpfile.js`,这个文件是gulp的配置文件。
以下是一个简单的gulpfile.js文件内容:
```
const elixir = require('laravel-elixir');
const uglify = require('gulp-uglify');
const sass = require('gulp-sass');
const sourcemaps = require('gulp-sourcemaps');
const imagemin = require('gulp-imagemin');
const pngquant = require('imagemin-pngquant');
const cache = require('gulp-cache');
elixir(function(mix) {
mix.sass('app.scss', 'public/css')
.scripts(['jquery.js', 'app.js'], 'public/js/app.js')
.version(['css/app.css', 'js/app.js']);
});
gulp.task('sass', function(){
return gulp.src('resources/assets/sass/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest('public/css'));
});
gulp.task('scripts', function() {
return gulp.src('resources/assets/js/**/*.js')
.pipe(uglify())
.pipe(gulp.dest('public/js'));
});
gulp.task('images', function() {
return gulp.src('resources/assets/images/**/*')
.pipe(cache(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
})))
.pipe(gulp.dest('public/images'));
});
gulp.task('watch', ['sass', 'scripts', 'images'], function(){
gulp.watch('resources/assets/sass/**/*.scss', ['sass']);
gulp.watch('resources/assets/js/**/*.js', ['scripts']);
gulp.watch('resources/assets/images/**/*', ['images']);
});
```
gulp由多个任务(task)构成。在gulpfile.js中只需要定义任务,gulp会自动将任务组合成完整流程。
`sass`任务用于编译sass文件。
`scripts`任务用于压缩js文件。
`images`任务用于压缩图片。
`watch`任务会实时监控文件的变化,当文件发生改动时会对应执行相应的任务,以达到自动化构建的目的。
## 4. 执行gulp任务
在命令行中执行以下命令来执行gulp任务:
```
gulp watch
```
以上命令会实时监控文件的变化,对应执行相应的任务。
最终编译后的文件会放置在`public/css`,`public/js`和`public/images`目录下。
至此,就成功完成了使用gulp构建前端资源的配置工作。
## 总结
本文详细介绍了如何使用gulp构建前端资源。gulp的配置相对于grunt来说更为简单,能够提升开发效率和自动化构建的效果。熟练掌握gulp的使用可以为项目开发节约时间和精力。