Add support for css module laravel mix.
npm i laravel-mix-vue-css-modules
First, VueCssModules must be enabled. Your webpack.mix.js
could look like this:
const mix = require("laravel-mix");
require("laravel-mix-vue-css-modules");
mix.vueCssModules();
Then, add the module attribute to your <style>
<style module>
.red {
color: red;
}
.bold {
font-weight: bold;
}
</style>
You can then use it in your templates with a dynamic class binding:
<template>
<p :class="$style.red">
This should be red
</p>
</template>
If you only want to use CSS Modules in some of your Vue components, you can set oneOf
to true
mix.vueCssModules({ oneOf: true });
// <style lang="scss" module>
mix.vueCssModules({ sass: true });
// DEFAULT: '[local]_[hash:base64:8]'
mix.vueCssModules({ localIdentName: "[name]__[local]___[hash:base64:5]" });
// DEFAULT: global
mix.vueCssModules({ mode: "local" });
Aslam FullStack Web developer