vuetifyjs-mix-extension

0.0.20 • Public • Published

npm npm NPM

Vuetify Laravel Mix Extension

Usage

If you are a Laravel user, here are some useful instructions.

NOTE: This extension only supports sass-loader ^9.0.0 ATM.

Highly recommend updating you mix version to ^6.0.0, as it provides much better experience and much faster.

The code snippets are for mix ^6.0.0, if you are still not convinced and want to use mix version ^5.0.0 see the old api here

  1. Install
npm i vuetifyjs-mix-extension@0.0.20 -D
  1. Then require the extension in your Mix configuration:
const mix = require('laravel-mix')

require('vuetifyjs-mix-extension')
  1. Enable the extension by calling vuetify() in your Mix chain:
mix.js('resources/js/app.js', 'public/js').vuetify().vue()
//if you use vuetify-loader
mix.js('resources/js/app.js', 'public/js').vuetify('vuetify-loader').vue()
  1. Run npm script
npm run dev

SASS variables

NOTE: This is only supported when using tree-shaking

By default it's going to look at your root directory 'resources/sass/variables.scss' file. It's going to use that file, if it exists.

You can also give it a different path, for example:

mix.js('resources/js/app.js', 'public/js')
    .vuetify('vuetify-loader', 'src/path/to/variables.scss')
    .vue()

Progressive images

If you want to use Progressive images feature, it is also easy to configure.

NOTE: You must have ImageMagick, GraphicsMagick, or sharp installed for this to work.

All you need to do is to pass the progressiveImages options in when you enable vuetify-loader.

Here is an example:

const options = { progressiveImages: true }
mix.js('resources/js/app.js', 'public/js')
    .vuetify('vuetify-loader', options)
    .vue()

Of course you can pass more options to it, it works the same as the vuetify-loader doc.

Finally, if you use both Progressive images and SASS variables, just pass both arguments after 'vuetify-loader'. The order of the arguments does not matter

Extract css

To extract all Vuetify components css, pass the extract option.

mix.js('resources/js/app.js', 'public/js')
    .vuetify('vuetify-loader', {
        extract: 'css/vuetify-components.css'
    })
    .vue()

Postcss support

mix.js('resources/js/app.js', 'public/js').vuetify('', { postcss: true }).vue()

known issue (for existing plugin users 26/01/2021)

If you are using mix ^6.0.0 you should face this error, Error: Cannot find module 'webpack/lib/RuleSet'

This is because the vuetify-loader current release is not supported webpack 5, the @next version has the webpack 5 support.

There are two ways you can solve this error (assuming you have the latest version of this plugin which is 0.0.20):

1. `npm uninstall vuetify-loader` and then run you compile scripts.

2. Just simply update `vuetify-loader` to `@next` by running `npm i vuetify-loader@next -D`

If you use this plugin for the first time, you should not face this.

License

The MIT License (MIT). Please see License File for more information.

Package Sidebar

Install

npm i vuetifyjs-mix-extension

Weekly Downloads

1,218

Version

0.0.20

License

MIT

Unpacked Size

16.3 kB

Total Files

15

Last publish

Collaborators

  • rooney1989