schwartzman

    0.9.2 • Public • Published

    schwartzman

    Webpack loader for Mustache. Compiles jsx.mustache files to ReactJS.

    in-browser demo

    why?!

    Because "built-in" server-side prerender of react components requires JS VM — JSX allows for pretty complex expressions. On the other hand, every language has library for rendering Mustache templates[citation needed]. Plus, Mustache is very simple and basic. So simple, that it's easier to write a Mustache-to-JS compiler than a JSX parser for Python/Perl/PHP/Pascal/P

    installation

    $ npm install --save-dev schwartzman

    And add to your webpack.config.js

    • {test: /\.jsx\.mustache$/, loader: "schwartzman"} to module.loaders
      • ⚠️ if you use partials, you'll need to "wrap" this loader with babel-loader or any other dependency solving loader

        {test: /\.jsx\.mustache$/, loader: "babel-loader!schwartzman"}

    • ".jsx.mustache" to resolve.extensions
    module.exports = {
      entry: {
        // ...
      },
      output: {
        // ...
      },
      module: {
        loaders: [
          // ...
          {test: /\.jsx\.mustache$/, loader: "schwartzman"},
        ],
      },
      resolve: {
        extensions: [
          // ...
          ".jsx.mustache",
        ],
        // ...
      }
      // ...
    }

    supported mustache blocks (with some limitations for attributes):

    • {{ variable }} and {{{ escaped_variables }}}
    • {{# section }}
    • {{^ inverted_section }}
    • {{! comment }}
    • {{> partial }}

    development

    $ npm i
    $ npm test

    Dependents (0)

    Install

    npm i schwartzman

    DownloadsWeekly Downloads

    165

    Version

    0.9.2

    License

    MIT

    Unpacked Size

    75.6 kB

    Total Files

    4

    Last publish

    Collaborators

    • zemlanin