DEV Community

Cover image for Meteor with Webpack — Faster compilation and better source handling
TheGuildBot for The Guild

Posted on • Updated on • Originally published at the-guild.dev

Meteor with Webpack — Faster compilation and better source handling

This article was published on Friday, July 13, 2018 by Arda Tanrikulu @ The Guild Blog

Introduction to Meteor-Webpack

Meteor is a complete full stack framework for fast-start on your real-time web
application. I don't focus on that for now.

Webpack is a great bundler to compile your code including view templates,
assets and the all stuff on your application.

However, Meteor already has its own built-in bundler; but it needs some challenging tricks when
you're working with ES2015 external npm dependencies or any compilation methods.

Meteor-Webpack is here as a solution to this kind of problems and lack of features in Meteor's
bundler.

Why Do You Need This?

For example, you have a Progressive Web Application using Service Workers, written in Angular, then
you have to create a service worker manifest based on your output files. We don't have a solution
for this on Meteor CLI natively. However, Webpack has a lot of community plugins such as
OfflinePlugin ,
Workbox and many others
for this problem as a solution. Just install them, and add to your
webpack.config.js . Meteor-Webpack will handle it like
you're working on a pure Webpack project.

Other example is server-side rendering. Angular CLI is based on Webpack,
and the project can be compiled for SSR by Angular CLI; but you need a different server application
to serve your Angular Universal application separate from Meteor backend. By using Meteor-Webpack,
it is possible only by ejecting Angular CLI's webpack.config.js , and use it on Meteor project.

Hot Module Replacement, Even for Server (Beta)

HMR hot module replacement

Reloading on recompilation while developing your app may take a lot of time. HMR comes to save us
from this time loss on development. If you don't know, what HMR is. You can
check out Webpack's documentation.

Meteor-Webpack integrates
webpack-dev-middleware and
webpack-hot-middleware to benefit HMR
in your project. The only thing you have to do is enabling this feature just like any other Webpack
project;

...
devServer: {
  hot: true
}
...
Enter fullscreen mode Exit fullscreen mode

Also, you can use HMR for server side. Meteor-Webpack supports
webpack-hot-server-middleware , that
replaces changed modules on your server without restarting all Meteor server. This also provides a
lot of benefits on development.

More Examples

There are more examples in the repository;
https://github.com/ardatan/meteor-webpack

Top comments (0)