# Marko + Webpack # Installation > `@marko/webpack` >= 7 Only supports Marko 5+. > For Marko 4 support use `@marko/webpack@6`. ```console npm install @marko/webpack ``` ### Loader: `@marko/webpack/loader` The loader portion of this module can be used standalone and simply transforms your Marko templates into the appropriate JavaScript depending on your webpack target. You can override the output by adding a `target` option to the loader of `target: "server" | "browser"`. ### Plugin: `@marko/webpack/plugin` The plugin actually creates two separate webpack plugins, the `browser` plugin and the `server` plugin. These are intended to be used in a isomorphic [webpack multi compiler](https://github.com/webpack/webpack/tree/master/examples/multi-compiler) where you are bundling both the server and the browser. The way it works is that the server plugin is going to analyze the top level Marko components in your server and automatically communicate with the browser compiler to retrieve the assets for that template. This plugin also analyzes the top level Marko templates and determines if it is possible for them to rerender (currently the heuristic is simply does the component have an associated `class` or `component.js`). The plugin will automatically skip sending down any unnecessary top level templates to the browser. The end result is that you setup a multi compiler (as shown below) and you can simply import Marko templates, and all assets are automatically generated and inlined into an optimized server response. No need to keep track of a webpack manifest yourself! ### Tag: `` The `` tag can be used along with the plugin in a multi-compiler setup. This tag allows you to inject `