1 | # Marko + Rollup
|
2 |
|
3 | The [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 |
|
5 | The [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
|
10 | npm install envify --save-dev
|
11 | npm install markoify --save-dev
|
12 | npm install rollup --save-dev
|
13 | npm install rollup-plugin-browserify-transform --save-dev
|
14 | npm install rollup-plugin-commonjs --save-dev
|
15 | npm install rollup-plugin-node-resolve --save-dev
|
16 | ```
|
17 |
|
18 | ## Configuration
|
19 |
|
20 | The following is the minimal recommend configuration to use Rollup with Marko:
|
21 |
|
22 | _rollup.config.js_
|
23 |
|
24 | ```js
|
25 | import commonjsPlugin from "rollup-plugin-commonjs";
|
26 | import browserifyPlugin from "rollup-plugin-browserify-transform";
|
27 | import nodeResolvePlugin from "rollup-plugin-node-resolve";
|
28 | import markoify from "markoify";
|
29 | import envify from "envify";
|
30 | import path from "path";
|
31 |
|
32 | export 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:
|
59 | rollup -c rollup.config.js
|
60 |
|
61 | # Production:
|
62 | NODE_ENV=production rollup -c rollup.config.js
|
63 | ```
|