UNPKG

1.8 kBMarkdownView Raw
1# Marko + Rollup
2
3The [markoify](https://github.com/marko-js/markoify) transform can be used in conjunction with [rollup](https://github.com/rollup/rollup) to automatically compile Marko templates that are required by other modules. An official Rollup plugin will be coming soon.
4
5The [marko-rollup](https://github.com/marko-js-samples/marko-rollup) sample app is a great starting point if you would like to use Marko with Rollup.
6
7## Installation
8
9```bash
10npm install envify --save-dev
11npm install markoify --save-dev
12npm install rollup --save-dev
13npm install rollup-plugin-browserify-transform --save-dev
14npm install rollup-plugin-commonjs --save-dev
15npm install rollup-plugin-node-resolve --save-dev
16```
17
18## Configuration
19
20The following is the minimal recommend configuration to use Rollup with Marko:
21
22_rollup.config.js_
23
24```js
25import commonjsPlugin from "rollup-plugin-commonjs";
26import browserifyPlugin from "rollup-plugin-browserify-transform";
27import nodeResolvePlugin from "rollup-plugin-node-resolve";
28import markoify from "markoify";
29import envify from "envify";
30import path from "path";
31
32export default {
33 entry: path.join(__dirname, "client.js"),
34 format: "iife",
35 moduleName: "app",
36 plugins: [
37 browserifyPlugin(markoify),
38 browserifyPlugin(envify),
39 nodeResolvePlugin({
40 jsnext: true, // Default: false
41 main: true, // Default: true
42 browser: true, // Default: false
43 preferBuiltins: false,
44 extensions: [".js", ".marko"]
45 }),
46 commonjsPlugin({
47 include: ["node_modules/**", "**/*.marko", "**/*.js"],
48 extensions: [".js", ".marko"]
49 })
50 ],
51 dest: path.join(__dirname, "./dist/bundle.js")
52};
53```
54
55## Usage
56
57```bash
58# Development:
59rollup -c rollup.config.js
60
61# Production:
62NODE_ENV=production rollup -c rollup.config.js
63```