Need advice about which tool to choose?Ask the StackShare community!
Create React App vs Webpack: What are the differences?
- Webpack: Webpack is a popular module bundler that allows developers to bundle different modules and static assets into a single file. It is highly configurable and provides a lot of flexibility in terms of how the code is processed and dependencies are resolved. Webpack has a steeper learning curve compared to Create React App.
- Create React App: Create React App is a command-line tool that sets up a new React project with a basic configuration, including webpack, Babel, and a development server. It provides a simple and streamlined way to start a new React project without having to worry about configuring webpack. Create React App abstracts away many of the complexities of webpack and makes it easier for beginners to get started with React development.
- Configuration: Webpack requires manual configuration for each project and provides a lot of options to customize the build process. Create React App, on the other hand, hides the webpack configuration and provides a predefined configuration that works out of the box for most projects. This means that developers using Create React App don't have to spend time configuring webpack and can focus more on building their React application.
- Plugins and Loaders: Webpack allows developers to use various plugins and loaders to handle different types of files and perform different tasks during the bundling process. Create React App abstracts away the need for manually configuring plugins and loaders. It comes with a predefined set of plugins and loaders that cover most common use cases, making it easier for developers to get started without having to worry about configuring and installing additional dependencies.
- Hot Module Replacement: Webpack supports hot module replacement (HMR), which allows developers to see the changes in their code instantly without having to manually refresh the browser. Create React App also supports HMR out of the box, making it easier for developers to see the changes in their React components in real-time while they are developing.
- Development and Production Builds: Webpack requires developers to configure separate webpack configurations for development and production builds. Create React App simplifies this process by providing a single configuration that is optimized for production builds. It automatically generates the optimized and minified production build when the project is ready to be deployed.
In Summary, Webpack provides more flexibility and customization options but requires manual configuration, while Create React App abstracts away the complexities of webpack and provides a simple and streamlined way to start a new React project.
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 Create React App
- No config, easy to use2
- Maintained by React core team2
Pros of Webpack
- Most powerful bundler309
- Built-in dev server with livereload182
- 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
Sign up to add or upvote prosMake informed product decisions
Cons of Create React App
- No SSR1
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