const mix = require('laravel-mix'); //require('laravel-mix-tailwind'); require('laravel-mix-purgecss'); const tailwindcss = require('tailwindcss'); /* |-------------------------------------------------------------------------- | 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 the application as well as bundling up all the JS files. | */ // transpiling, babelling, minifying and creating the public/js/main.js out of our assets mix.setPublicPath('public') .react('resources/js/app.js', 'public/dist/js') // .sass('resources/scss/main.scss', 'public/dist/css') .postCss('resources/scss/main.css', 'public/dist/css') // .tailwind('./tailwind.config.js'); mix.webpackConfig({ output: { chunkFilename: './dist/js/[name].[contenthash].js' }, module: { rules: [ { test: /\.(css)/, use: [ { loader: 'postcss-loader', options: { ident: 'postcss', plugins: [ tailwindcss('./tailwind.config.js'), require('autoprefixer'), ], }, }, ], } ], }, resolve: { alias: { "@": path.resolve( __dirname, "resources/js" ), "@sass": path.resolve( __dirname, "resources/scss" ) } }, devServer: { proxy: { host: '0.0.0.0', // host machine ip port: 8080, } } }); mix.options({ hmrOptions: { host: '0.0.0.0', // site's host name port: 8081 } }); if (mix.inProduction()) { mix.purgeCss({ content: [ './resources/**/*.edge', './resources/**/*.js', './resources/**/*.jsx', './resources/**/*.ts', './resources/**/*.tsx' ], // default in mix //defaultExtractor: content => content.match(/[A-Za-z0-9-_:/]+/g) || [], // default tailwind defaultExtractor: content => content.match(/[\w-/.:]+(?