Created
May 17, 2018 16:50
-
-
Save josecanhelp/38bffa6e0e6290b5ee704fdc9f3eb734 to your computer and use it in GitHub Desktop.
JoseSoto.com Mix-Webpack Config
This file contains 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
let mix = require('laravel-mix'); | |
let build = require('./tasks/build.js'); | |
let tailwindcss = require('tailwindcss'); | |
let glob = require("glob-all"); | |
let PurgecssPlugin = require("purgecss-webpack-plugin"); | |
const CopyWebpackPlugin = require('copy-webpack-plugin'); | |
const ImageminPlugin = require('imagemin-webpack-plugin').default; | |
const imageminMozjpeg = require('imagemin-mozjpeg'); | |
class TailwindExtractor { | |
static extract(content) { | |
return content.match(/[A-z0-9-:\/]+/g) || []; | |
} | |
} | |
mix.disableSuccessNotifications(); | |
mix.setPublicPath('source/assets/'); | |
mix.webpackConfig({ | |
plugins: [ | |
build.jigsaw, | |
build.browserSync(), | |
build.watch(['source/**/*.md', 'source/**/*.php', 'source/**/*.less']), | |
new CopyWebpackPlugin([{ | |
from: 'source/_assets/img', | |
to: 'img', | |
}]), | |
new ImageminPlugin({ | |
test: /\.(jpe?g|png|gif|svg)$/i, | |
plugins: [ | |
imageminMozjpeg({ | |
quality: 80, | |
}) | |
] | |
}), | |
] | |
}); | |
mix.js('source/_assets/js/main.js', 'js') | |
.less('source/_assets/less/main.less', 'css') | |
.options({ | |
postCss: [ | |
tailwindcss('./tailwind.js'), | |
] | |
}) | |
.version(); | |
if (mix.inProduction()) { | |
mix.webpackConfig({ | |
plugins: [ | |
new PurgecssPlugin({ | |
paths: glob.sync([ | |
path.join(__dirname, "source/_layouts/*.blade.php"), | |
path.join(__dirname, "source/_partials/*.blade.php"), | |
path.join(__dirname, "source/_posts/*.blade.php"), | |
path.join(__dirname, "source/*.blade.php") | |
]), | |
extractors: [ | |
{ | |
extractor: TailwindExtractor, | |
extensions: ["html", "js", "php"] | |
} | |
] | |
}) | |
] | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment