Configuration

Create a webpack.mix.js file at the root of your project:

Update package.json with the workflow:

Options

Create a theme-mix.yaml file at the root of your project. These are the default configuration options, except copy which by default is an empty list.

runTasks:
  clean: true
  js: true
  copy: true
  sass: true
  html: true
enableCssThemes: false
enableCssRTL: true
copyCwd: node_modules
copyDest: dist/assets/vendor
copy:
  - jquery/dist/jquery.min.js
  - bootstrap/dist/js/bootstrap.min.*
  - popper.js/dist/umd/popper.min.*
  - dom-factory/dist/*
  - fix-footer/dist/*
  - material-design-kit/dist/material-design-kit.js
  - bootstrap-touchspin/dist/jquery.bootstrap-touchspin.js
  - chart.js/dist/Chart.min.js
  - jquery.fancytree/dist/jquery.fancytree-all.min.js
  - moment/min/moment.min.js
  - moment-range/dist/moment-range.min.js
  - flatpickr/dist/flatpickr.min.{js,css}: dist/assets/vendor/flatpickr
  - flatpickr/dist/themes/airbnb.css: dist/assets/vendor/flatpickr
  - jquery-mask-plugin/dist/jquery.mask.min.js
  - quill/dist/quill.min.js
  - perfect-scrollbar/css/*
  - perfect-scrollbar/dist/*.min.js
  - material-design-icons-iconfont/dist/fonts/*.{eot,ttf,woff,woff2}: dist/assets/fonts/material-icons
  - '@fortawesome/fontawesome-free/webfonts/*': dist/assets/fonts/fontawesome-free
  - vue-icons-demo-app/dist/assets/data/material-icons: dist/assets/data/material-icons
  - highlight.js/styles/vs2015.css: dist/assets/vendor/highlight.js
  - list.js/dist/list.min.js
  - vue/dist/vue.min.js
clean:
  - dist/**/*.html
  - dist/assets/{css,fonts,js,vendor}
sassSrc: src/sass/**/*.scss
cssDest: dist/assets/css
jsSrc: src/js/**/**.{js,vue}
jsDest: dist/assets/js
htmlDest: dist/[path][name].html
htmllint: false
laravelMixOptions:
  processCssUrls: false