1.0.19 • Published 5 years ago

riot-tag-new-loader v1.0.19

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

riot-tag-new-loader (Riot.js version 3 only)

Riot new Webpack loader


Example Autoprefixer and Babel for Riot.js version 4

  1. Install official loader
  2. webpack.config.js
  3. example app

Install

npm i -D riot-tag-new-loader

Usage

webpack.config.js

module.exports = {
  module: {
    rules: [
      ... // other rules
      {
        test: /\.tag$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'riot-tag-new-loader',
          options: {
            parsers: {
              css: {
                myparser: function(tag, css) {
                  return css.replace(/@tag/, tag)
                }
              }
            }
          }
        }
      }
      ... // other rules
    ]
  }
}

Todo.tag

<todo>
  <p>hi</p>
  <style type="text/myparser">
    @tag {color: red;}
  </style>
</todo>

will be compiled to:

<todo>
  <p>hi</p>
  <style type="text/myparser">
    todo {color: red;}
  </style>
</todo>

Example for Autoprefixer and Babel

npm i -D babel-loader @babel/core @babel/preset-env riot-tag-new-loader postcss autoprefixer

webpack.config.js

const postcss = require('postcss')
const autoprefixer = require('autoprefixer')
const path = require('path')

module.exports = {
  entry: './src/App.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'build.js',
    publicPath: 'dist/'
  },
  module: {
    rules: [
      {
        test: /\.tag$/,
        exclude: /(node_modules|bower_components)/,
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env']
            }
          },
          {
            loader: 'riot-tag-new-loader',
            options: {
              parsers: {
                css: {
                  myparser: function(tag, css) {
                    return postcss([ autoprefixer({ browsers: ['last 15 versions'] }) ]).process(css).css
                  }
                }
              }
            }
          }
        ]
      },
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  }
}

License

ISC License

Author

Legostaev Vadim (legostaev.vadim@mail.ru)

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago