Need advice about which tool to choose?Ask the StackShare community!
Webpack vs Yeoman: What are the differences?
What is Webpack? A bundler for javascript and friends. A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders" modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
What is Yeoman? A set of tools for automating development workflow. Yeoman is a robust and opinionated set of tools, libraries, and a workflow that can help developers quickly build beautiful, compelling web apps. It is comprised of yo - a scaffolding tool using our generator system, grunt - a task runner for your build process and bower for dependency management.
Webpack can be classified as a tool in the "JS Build Tools / JS Task Runners" category, while Yeoman is grouped under "Front End Scaffolding Tools".
"Most powerful bundler", "Built-in dev server with livereload" and "Can handle all types of assets" are the key factors why developers consider Webpack; whereas "Lightning-fast scaffolding", "Automation" and "Great build process" are the primary reasons why Yeoman is favored.
Webpack and Yeoman are both open source tools. It seems that Webpack with 49.5K GitHub stars and 6.22K forks on GitHub has more adoption than Yeoman with 9.23K GitHub stars and 759 GitHub forks.
According to the StackShare community, Webpack has a broader approval, being mentioned in 2181 company stacks & 1297 developers stacks; compared to Yeoman, which is listed in 204 company stacks and 200 developer stacks.
I could define the next points why we have to migrate:
- Decrease build time of our application. (It was the main cause).
- Also
jspm install
takes much more time thannpm install
. - Many config files for SystemJS and JSPM. For Webpack you can use just one main config file, and you can use some separate config files for specific builds using inheritance and merge them.
We mostly use rollup to publish package onto NPM. For most all other use cases, we use the Meteor build tool (probably 99% of the time) for publishing packages. If you're using Node on FHIR you probably won't need to know rollup, unless you are somehow working on helping us publish front end user interface components using FHIR. That being said, we have been migrating away from Atmosphere package manager towards NPM. As we continue to migrate away, we may publish other NPM packages using rollup.
Pros of Webpack
- Most powerful bundler308
- Built-in dev server with livereload181
- Can handle all types of assets142
- Easy configuration87
- Laravel-mix22
- Overengineered, Underdeveloped4
- Makes it easy to bundle static assets2
- Webpack-Encore2
- Redundant1
- Better support in Browser Dev-Tools1
Pros of Yeoman
- Lightning-fast scaffolding121
- Automation83
- Great build process78
- Open source57
- Yo49
- Unit Testing8
Sign up to add or upvote prosMake informed product decisions
Cons of Webpack
- Hard to configure15
- No clear direction5
- Spaghetti-Code out of the box2
- SystemJS integration is quite lackluster2
- Loader architecture is quite a mess (unreliable/buggy)2
- Fire and Forget mentality of Core-Developers2
Cons of Yeoman
- Even harder to debug than Javascript1