const mix = require('laravel-mix'); const SvgSpritemapPlugin = require('svg-spritemap-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const fs = require('fs'); /* |-------------------------------------------------------------------------- | Mix Asset Management |-------------------------------------------------------------------------- | | Mix provides a clean, fluent API for defining some Webpack build steps | for your Laravel application. By default, we are compiling the Sass | file for your application, as well as bundling up your JS files. | */ mix.webpackConfig({ plugins: [ new SvgSpritemapPlugin('assets/svg/*.svg', { output: { filename: 'dist/example/symbol-defs.svg' }, sprite: { prefix: 'icon-' } }), new HtmlWebpackPlugin({ filename: 'dist/recipes/modern-386/index.html', template: 'src/html/recipes/modern-386/index.html.ejs', title: 'Crispy CSS | Lightweight CSS Framework for Building Apps and Websites', description: 'Lightweight Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers', footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/index.html', template: 'src/html/index.html.ejs', title: 'Crispy CSS | Lightweight CSS Framework for Building Apps and Websites', description: 'Lightweight Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers', footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/getting-started.html', template: 'src/html/page.html.ejs', title: 'Getting started!', description: 'Start with Crispy CSS, here you find Variables to configure all values. There is also a short overview for the examples.', body: fs.readFileSync(__dirname + '/src/html/partials/getting-started.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/core.html', template: 'src/html/page.html.ejs', title: 'Core', description: 'The Core have the basic Styles for Typography, Heading and also Normalize.', body: fs.readFileSync(__dirname + '/src/html/partials/core.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/components.html', template: 'src/html/page.html.ejs', title: 'Components', description: 'Components are optional, the have a basic build and should be extended.', body: fs.readFileSync(__dirname + '/src/html/partials/components.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/helpers.html', template: 'src/html/page.html.ejs', title: 'Helpers', description: 'CSS-Classes that can be use to override other Styles, also used if there is no need to style the element.', body: fs.readFileSync(__dirname + '/src/html/partials/helpers.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/mixins.html', template: 'src/html/page.html.ejs', title: 'Mixins', description: 'Most Mixins will be used to handle Breakpoints and add Styles.', body: fs.readFileSync(__dirname + '/src/html/partials/mixins.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/functions.html', template: 'src/html/page.html.ejs', title: 'Functions', description: 'Functions helps to handle variables.', body: fs.readFileSync(__dirname + '/src/html/partials/functions.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/imprint.html', template: 'src/html/page.html.ejs', title: 'Imprint', body: fs.readFileSync(__dirname + '/src/html/partials/imprint.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }), new HtmlWebpackPlugin({ filename: 'dist/example/privacy-policy.html', template: 'src/html/page.html.ejs', title: 'Privacy Policy', body: fs.readFileSync(__dirname + '/src/html/partials/privacy-policy.html'), footer: fs.readFileSync(__dirname + '/src/html/partials/footer.html'), inject: false }) ] }); mix.sass('src/crispy-all.scss', 'dist/crispy-all.css') .sass('src/crispy-minimal.scss', 'dist/crispy-minimal.css') .sass('recipes/modern-386/modern-386.scss', 'dist/recipes/modern-386/modern-386.css') .sass('example/styles.scss', 'dist/example/styles.css', { sassOptions: { includePaths: [ 'node_modules/reflex-grid/scss' ] } }) .copy('fonts/*', 'dist/recipes/modern-386/fonts') .js('example/js/script.js', 'dist/example/script.js') .options({ postCss: [ require('postcss-css-variables')() ] });