Created
February 15, 2016 21:46
-
-
Save wdmtech/752209a27304711266da to your computer and use it in GitHub Desktop.
gulpfile.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var gulp = require('gulp'); | |
var gutils = require('gulp-util'); | |
var elixir = require('laravel-elixir'); | |
require('laravel-elixir-imagemin'); | |
require('laravel-elixir-browsersync'); | |
require('laravel-elixir-modernizr'); | |
var b = elixir.config.js.browserify; | |
var cssnext = require("gulp-cssnext"); | |
var less = require('gulp-less'); | |
var autoprefixer = require('gulp-autoprefixer'); | |
var minifyCSS = require('gulp-minify-css'); | |
var fontmin = require('gulp-fontmin'); | |
var googleWebFonts = require('gulp-google-webfonts'); | |
var resourcesDir = './resources/'; | |
var jsDir = './resources/assets/js/'; | |
var siteJSDir = './resources/assets/js/site/'; | |
var bowerDir = './resources/assets/bower/'; | |
var publicJSDir = './public/js/'; | |
var allJS = './public/js/all.js'; | |
var imageminOptions = { optimizationLevel: 1, progressive: true, interlaced: true }; | |
/* | |
|-------------------------------------------------------------------------- | |
| 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 Sass | |
| file for our application, as well as publishing vendor resources. | |
| | |
| http://laravel.com/docs/5.0/elixir | |
| | |
*/ | |
/* | |
* Edit resources/fonts.list to get any Google web-font | |
* todo : this would be nice wrapped up for Elixir | |
*/ | |
gulp.task('fonts', function () { | |
return gulp.src('./resources/fonts.list') | |
.pipe(googleWebFonts()) | |
.pipe(gulp.dest('./public/build/css')); | |
}); | |
gulp.task('fontmin', function () { | |
return gulp.src(bowerDir + 'google-fonts/ofl/titilliumweb/*.ttf') | |
.pipe(fontmin({ | |
})) | |
.pipe(gulp.dest('./public/build/fonts/')); | |
}); | |
gulp.task("basscss", function() { | |
gulp.src(resourcesDir + "/assets/less/basscss/src/base.css") | |
.pipe(cssnext({ | |
compress: true | |
})) | |
.pipe(gulp.dest("./public/build/basscss")) | |
}); | |
/// | |
if(gutils.env._.indexOf('watch') > -1){ | |
b.plugins.push({ | |
name: "browserify-hmr", | |
options : {} | |
}); | |
} | |
/// | |
elixir(function (mix) { | |
mix.copy(bowerDir + "wdmtech-css-helpers/src/less", "resources/assets/less"); // todo : put in resources/less/imports folder? | |
// louisremi/background-size-polyfill : https://github.com/louisremi/background-size-polyfill | |
mix.copy(bowerDir + "background-size-polyfill/backgroundsize.min.htc", "public/build/css"); | |
// IE8 specific stylesheet | |
mix.copy(resourcesDir + "assets/css/site/ie8.css", "public/build/css"); | |
// mix.sass("app.scss") | |
// https://viget.com/extend/gulp-browserify-starter-faq | |
// todo : Clean this up! | |
mix.less([ | |
// app | |
"_fonts.less", | |
// Vendor overrides | |
"_nprogress.less", | |
// wdmtech/css-helpers | |
"_breadcrumbs.less", | |
"_messages.less", | |
"_mixins.less", | |
"_pagination.less", | |
"_vue.less", | |
// site | |
"site/default.less", | |
"site/_mobile_menu.less", | |
"site/_fonts.less", | |
"site/_lists.less" | |
], "public/css/all.css") | |
.styles([ | |
////////////////////////// | |
// Libraries/Frameworks // | |
////////////////////////// | |
"public/build/basscss/base.css", | |
bowerDir + "normalize-css/normalize.css", | |
///////////////// | |
// UI Elements // | |
///////////////// | |
bowerDir + "hint.css/hint.css", | |
bowerDir + "messenger/build/css/*.css", | |
bowerDir + "animate.css/animate.css", | |
bowerDir + "codemirror/lib/codemirror.css", | |
bowerDir + "prism/themes/prism.css", | |
//bowerDir + "nprogress/nprogress.css", | |
resourcesDir + "assets/css/flags/flag-icon.css", | |
//bowerDir + "gritcode-components/dist/gritcode-components.css", | |
"public/css/all.css", | |
"public/build/css/fonts.css" | |
//"public/build/fonts/TitilliumWeb-Regular.css" | |
], 'public/css/all.css', './'); | |
mix.scripts([ | |
////////////////////////// | |
// Libraries/Frameworks // | |
////////////////////////// | |
"jquery-legacy/jquery.js", | |
//"jquery-modern/dist/jquery.js", | |
/////////////////////////// | |
// Polyfills/Shims/Shivs // | |
/////////////////////////// | |
"console-polyfill/index.js", | |
"es5-shim/es5-shim.js", | |
"html5shiv/dist/html5shiv.js", | |
"respond/dest/respond.src.js", | |
"selectivizr/selectivizr.js", | |
///////////////// | |
// UI Elements // | |
///////////////// | |
"messenger/build/js/messenger.js", | |
"slicknav/dist/jquery.slicknav.min.js", | |
"codemirror/lib/codemirror.js", | |
"codemirror/addon/mode/overlay.js", | |
"codemirror/addon/runmode/runmode.js", | |
"codemirror/addon/runmode/colorize.js", | |
"codemirror/mode/xml/xml.js", | |
"codemirror/mode/javascript/javascript.js", | |
"codemirror/mode/css/css.js", | |
"codemirror/mode/php/php.js", | |
"codemirror/mode/markdown/markdown.js", | |
"codemirror/mode/gfm/gfm.js", | |
//"gritcode-components/dist/gritcode-components.js", | |
"prism/prism.js", | |
"prism/components/prism-php.js", | |
"prism/components/prism-php-extras.js", | |
//"nprogress/nprogress.js", | |
////////////////// | |
// File uploads // | |
////////////////// | |
"blueimp-file-upload/js/vendor/jquery.ui.widget.js", | |
"blueimp-file-upload/js/jquery.iframe-transport.js", | |
"blueimp-file-upload/js/jquery.fileupload.js", | |
//////////////// | |
// Formatters // | |
//////////////// | |
"wnumb/wNumb.js", | |
///////////// | |
// Helpers // | |
///////////// | |
"wdmtech-js-helpers/src/externallinks.jquery.js", | |
"wdmtech-js-helpers/src/scrolltotop.jquery.js", | |
jsDir + "utils/BrowserDetect.js", | |
// Custom | |
publicJSDir + "vendor/modernizr-custom.js", | |
/////////////////////// | |
// Custom JavaScript // | |
/////////////////////// | |
// Formatters | |
jsDir + "formatters/CurrencyFormatter.js" | |
], allJS, bowerDir); | |
mix.browserify('main.js'); | |
mix.browserSync({ | |
files: [ | |
elixir.config.appPath + '/**/*.php', | |
elixir.config.get('public.css.outputFolder') + '/**/*.css', | |
elixir.config.get('public.versioning.buildFolder') + '/rev-manifest.json', | |
'resources/views/**/*.php' | |
], proxy: 'laravel-start-point.app' | |
}); | |
mix.version(["css/all.css", "js/all.js", "js/vendor/modernizr-custom.js"]); | |
//mix.modernizr(); | |
elixir.config.images = { | |
//folder: 'xxx' | |
outputFolder: './images/min' | |
}; | |
mix.imagemin(); | |
//mix.browserSync({ proxy: "laravel-start-point.app" }); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment