JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 58
  • Score
    100M100P100Q67690F
  • License MIT

A marko template loader for webpack

Package Exports

  • marko-loader

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (marko-loader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

marko-loader

A marko template loader for webpack.

Installation

Install required packages:

npm install marko --save
npm install marko-loader --save-dev

And then register the marko loader in your webpack configuration file:

webpack.config.js:

module.exports = {
    // ...
    module: {
        rules: [{
            test: /\.marko$/,
            loader: "marko-loader"
        }]
    }
};

Usage

With this loader installed, you can then require ./template.marko files as shown below:

./template.marko:

<div>
    <h1>Hello ${data.name}!</h1>
</div>

./index.js:

var template = require('./template.marko')
var html = template.renderToString({ name: 'Frank' });

Compilation target

marko-loader will automatically detect your webpack target and output the appropriately compiled Marko code. If you wish to override this behaviour simply add the target field in the options for this loader.

Hydrate & dependencies for server-rendered pages

When rendering a Marko template serverside, only components that can re-render need their full template in the browser. This loader supports only loading the needed parts to hydrate with two options:

  • ?dependencies includes only the dependencies that are needed in the browser (css, dynamic components)
  • ?hydrate includes these dependencies and also kicks off hydration & component initialization

webpack.config.js:

module.exports = {
    entry: "./path/to/page.marko?hydrate",
    /* ... */
}

Additional resources

License

MIT