Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
marko
✓ import marko from 'rollup-plugin-marko'
✗ const marko = require('rollup-plugin-marko')
ESM only; the plugin is a default export.
marko (as a function)
✓ import marko from 'rollup-plugin-marko'
export default {
plugins: [marko()]
}
✗ export default {
plugins: [marko]
}
marko must be called as a function (even without options) because it returns a plugin object.
process polyfill
✓ // In rollup config:
import nodeGlobals from 'rollup-plugin-node-globals'
...plugins: [marko(), nodeGlobals()]
✗ // Forgetting to add nodeGlobals plugin, causing runtime errors
Marko requires the global `process` object. The simplest way is to include rollup-plugin-node-globals.
Basic Rollup configuration using rollup-plugin-marko to compile Marko templates, including necessary companion plugins.
// Install the plugin and its dependencies
// npm install rollup-plugin-marko rollup-plugin-babel rollup-plugin-commonjs rollup-plugin-node-resolve rollup-plugin-node-globals
// rollup.config.js
import babel from 'rollup-plugin-babel';
import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';
import nodeGlobals from 'rollup-plugin-node-globals';
import marko from 'rollup-plugin-marko';
export default {
input: 'src/app.js',
output: {
file: 'dist/bundle.js',
format: 'iife',
sourceMap: true
},
plugins: [
marko(),
babel({
exclude: 'node_modules/**'
}),
nodeResolve({
jsnext: true,
main: true,
browser: true,
preferBuiltins: false
}),
commonjs({
include: ['node_modules/**', 'src/**/*.marko', 'src/**/*.marko.js'],
extensions: ['.js', '.marko'],
sourceMap: true
}),
nodeGlobals()
]
};
Errors
Common errors & fixes
Uncaught ReferenceError: process is not defined
Marko templates require the `process` global, which is not available in browser bundles.
fixAdd rollup-plugin-node-globals or a polyfill for process.
Error: Cannot find module 'marko' from '...'
Missing Marko or its dependencies in node_modules.
fixRun `npm install marko` to install Marko as a dependency.
TypeError: marko is not a function
The plugin was imported but not called as a function in the plugins array.
fixChange `plugins: [marko]` to `plugins: [marko()]`.
Audit
Dependencies
rollup-plugin-node-globalsrequiredRequired to polyfill Node.js globals like process for Marko
rollup-plugin-commonjsrequiredNeeded to convert CommonJS modules used by Marko
rollup-plugin-node-resolverequiredResolves node_modules for Marko dependencies
rollup-plugin-babelrequiredTranspile ES2015+ code in Marko templates