gulpfile php,laravel中使用gulp打包发布前端部分

laravel中的前端代码都是形如xxx.blade.php。可以使用前端的工具来对blade,css,js进行压缩吗?当然,gulp可以做到。

看完你就明白,这是个自动化构建工具的核心就是gulpfile.js。

用于laravel的gulp怎么写?

把一切****.html换成****.blade.php就行了。

有什么坑要注意?

异步执行,前后依赖关系必须写明。比如:

gulp.task('rev' , ['concatCss', 'concatJs'],function() {

return gulp.src(['./rev/**/*.json', paths.html]) //- 读取 rev-manifest.json 文件以及需要进行css名替换的文件

.pipe(revCollector(

{

replaceReved: true,

dirReplacements: {

'css': 'css',

'js': 'js',

}

}

))

.pipe(gulp.dest(dist));

});

这里先异步执行concatCss和concatJs两个task,然后执行dev。

在对css和js文件拼接md5后缀的时候,要按照官方文档的方式来写。

最后附上gulpfile.js的代码:

var gulp = require('gulp');

var uglify = require('gulp-uglify');

var rev = require('gulp-rev');

var revCollector = require('gulp-rev-collector');

var cleanCSS = require('gulp-clean-css');

var htmlmin = require('gulp-htmlmin');

var paths = {

css: "css/*.css",

js: "js/*.js",

html: "./*.blade.php"

};

var dist = "./dist/"; //写的很简单,都发布到dist下。在laravel下可以配置不同文件类型的发布路径。

gulp.task('compressHtml',['rev'],function () {

var options = {

removeComments: true,//清除HTML注释

removeScriptTypeAttributes: true,//删除`

removeStyleLinkTypeAttributes: true,//删除`

minifyCSS: true,//压缩页面CSS

collapseWhitespace: true,

minifyJS: true,

};

return gulp.src(dist+'*.blade.php')

.pipe(htmlmin(options))

.pipe(gulp.dest(dist));

});

gulp.task('concatCss',function() { //- 创建一个名为 concat 的 task

return gulp.src(paths.css) //- 需要处理的css文件,放到一个字符串数组里

.pipe(rev()) //- 文件名加MD5后缀

.pipe(cleanCSS({compatibility: 'ie8'}))

.pipe(gulp.dest(dist+'css/')) //- 输出文件本地

.pipe(rev.manifest()) //- 生成一个rev-manifest.json

.pipe(gulp.dest('./rev/css')); //- 将 rev-manifest.json 保存到 rev 目录内

});

gulp.task('concatJs', function() { //- 创建一个名为 concat 的 task

return gulp.src(paths.js) //- 需要处理的css文件,放到一个字符串数组里

.pipe(rev()) //- 文件名加MD5后缀

.pipe(uglify())

.pipe(gulp.dest(dist+"js/"))

.pipe(rev.manifest()) //- 生成一个rev-manifest.json

.pipe(gulp.dest('./rev/js')); //- 将 rev-manifest.json 保存到 rev 目录内

});

gulp.task('rev' , ['concatCss', 'concatJs'],function() {

return gulp.src(['./rev/**/*.json', paths.html]) //- 读取 rev-manifest.json 文件以及需要进行css,js名替换的文件

.pipe(revCollector(

{

replaceReved: true,

dirReplacements: {

'css': 'css', //这里是把文件中的css换成别的字符串,可以拼接发布目录

'js': 'js', //道理同上

}

}

))

.pipe(gulp.dest(dist));

});

gulp.task('default', ['compressHtml']);

在命令行运行gulp default

然后去dist里面看看生成了什么吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值