Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zephraph/vue-theme-loader

A webpack loader for supporting multi-site theming with Vue.js
https://github.com/zephraph/vue-theme-loader

theme vue vue-theme-loader webpack-loader

Last synced: about 10 hours ago
JSON representation

A webpack loader for supporting multi-site theming with Vue.js

Awesome Lists containing this project

README

        

# vue-theme-loader [![Greenkeeper badge](https://badges.greenkeeper.io/zephraph/vue-theme-loader.svg)](https://greenkeeper.io/)

A webpack loader for supporting multi-site theming with Vue.js

Give styleblocks in Vue's single file components a theme attribute. Specify which theme you want to build for via an option to `vue-theme-loader`. All other unmatching themed style blocks will be removed.

In this example there is one non-themed block and two themed. Setting the theme option to `brand1` removes the `brand2` themed styleblock.

*Before*

```vue

button {
border: 1px solid black;
}

button {
color: red;
}

button {
color: blue;
}

```

*After* (with the `theme` option set to brand1)

```vue

button {
border: 1px solid black;
}

button {
color: red;
}

```

## Configuring webpack

It's important to remember that webpack resolves loaders from right to left so `vue-theme-loader` must always go under `vue-loader`.

```js
module.exports = {
module: {
rules: [
    {
test: /\.vue$/,
use: [
{
loader: 'vue-loader'
},
{
loader: 'vue-theme-loader',
options: {
theme: 'brand1'
}
}
]
}
   ]
}
};
```