SlideShare a Scribd company logo
REACT WORKFLOWS
CEM ARGUVANLI
cemarguvanli@gmail.com
twitter.com/cemarguvanli
CREATE
REACT
APP
BENEFITS
▸ No Webpack configurations
▸ No Babel configurations
▸ Sass & CSS modules (came with v2.0)
▸ Start coding right away
CONFIGURATION SHOULD NOT
STAND IN THE WAY OF GETTING
STARTED.
Dan Abramov
TEXT
WHY
SHOULD

NOT
USE CRA
THE MAGIC IS HIDDEN FROM YOUR VIEW
▸ What is going on?
▸ There will be always customizing issues**
▸ You can’t use latest updates
▸ Extra dependencies
▸ Eject
WEBPACK
ReactJS Workflows
Module Bundler
Webpack is a build tool that
puts all of your assets, including
JavaScript, images, fonts, and
CSS, in a dependency graph.
BENEFITS
▸ Stable production deploys
▸ Dead asset elimination
▸ Fast
▸ Full of control
▸ Good documentation
DEPENDENCIES
▸ webpack: We need Webpack to bundle our code.
▸ webpack-cli: We will be using some CLI features of
Webpack to make our lives easier while writing some
scripts.
▸ webpack-dev-server: we will create a server using the
webpack-dev-server package. This is only meant to be used
in the development environment, and not for production.
This means while developing and working on my code, I
don’t need a separate server like NodeJS to setup manually.
DEPENDENCIES
▸ webpack-merge: To divide our configuration into chunks
▸ style-loader: This adds CSS to the DOM by injecting a
script tag in the header
▸ sass-loader: For SCSS support
▸ webpack-visualizer-plugin: To see a visual representation
of each of our bundle size — how much space they are
taking and what are their dependencies.
ReactJS Workflows
DEPENDENCIES
▸ node-sass: A dependency for sass-loader
▸ css-loader: To convert our .scss files into .css
▸ mini-css-extract-plugin: This plugin extracts CSS into
separate files. It creates a CSS file per JS file which
contains CSS.
▸ uglifyjs-webpack-plugin: To minify JavaScript code for
production
DEPENDENCIES
▸ optimize-css-assets-webpack-plugin: To minify CSS code for
production
▸ html-webpack-plugin: This does more then generate an HTML
file, it supports on demand .css and .js files automatically
added to your HTML files on demand
▸ copy-webpack-plugin: Copies files/folders to your build folder.
▸ babel-loader: This is the loader that helps webpack compile .js
files
DEPENDENCIES
▸ @babel/core: Babel core compiler, this is a dependency that lets
you use babel-loader
▸ @babel/preset-react Babel preset for React code
▸ @babel/preset-env: Babel preset that allows you to use the
latest JavaScript
▸ @babel/pollyfill: Babel includes a polyfill that includes a
custom regenerator runtime and core-js. This will emulate a full
ES2015+ environment. This means support for async/await type
of cool syntax sugar.
DEPENDENCIES
▸ @babel/plugin-proposal-class-properties: Coverts your
class syntax into a function for browsers that don’t support
class syntax
▸ @babel/plugin-syntax-dynamic-import: This is what helps
with code splitting. Webpack ships with code splitting by
default (Since webpack 1). But when you want to code
split in webpack while you are using babel, then you need
to use this plugin.
ReactJS Workflows
ReactJS Workflows
STYLES
REACT STYLESHEETS
▸ Classic Approach: Using Regular CSS Stylesheets 
▸ Styled Component
▸ CSS Modules Stylesheet
▸ CSS in JS
▸ * classnames package
TESTS
ReactJS Workflows
ADVANTAGES OF TEST
▸ Facilitates discovering bugs in the development phase,
before it reaches users
▸ Enforces writing better code that is more modular, covers
edge cases, and easily testable
▸ Lowers the risk when making large changes or refactors
▸ Provides documentation and helps the next engineer
understand what the code should do
FOLDER
STRUCTURE
WHAT ARE WE MISSING?
▸ Flux architecture
▸ Pre-commit
▸ Storybook
▸ Linters
▸ Deployment
▸ Error boundary
Thank you
Any questions?

More Related Content

PDF
Modern Web Application Development Workflow - EclipseCon France 2014
PDF
The Evolution of Airbnb's Frontend
PPTX
MeteorJS Session
PDF
Webpack: from 0 to 2
PDF
Webpack DevTalk
PPTX
AWS CodeDeploy - basic intro
PPT
Migraine Drupal - syncing your staging and live sites
PPTX
Building real time app by using asp.Net Core
Modern Web Application Development Workflow - EclipseCon France 2014
The Evolution of Airbnb's Frontend
MeteorJS Session
Webpack: from 0 to 2
Webpack DevTalk
AWS CodeDeploy - basic intro
Migraine Drupal - syncing your staging and live sites
Building real time app by using asp.Net Core

What's hot (20)

PPTX
005. a React project structure
PDF
Node.JS: Do you know the dependency of your dependencies dependency
PDF
Learning chef
PPTX
007. Redux middlewares
PPTX
WordPress + NGINX Best Practices with EasyEngine
PDF
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
PDF
Nuxt.js - Introduction
PDF
Play framework And Google Cloud Platform GCP.
PDF
Modern infrastructure as code with ansible cake fest 2021
PPT
Fast Slim Correct: The History and Evolution of JavaScript.
PDF
React server side rendering performance
PDF
Play Framework on Google App Engine - Productivity Stack
PDF
WebAssembly vs JavaScript: What is faster?
PDF
Webpack Tutorial, Uppsala JS
KEY
深入淺出RoR
PDF
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
PDF
WebAssembly in Houdini CSS, is it possible?
PDF
Create your-own-gem-with-github-jeweler-rubygems
PDF
Using hapi plugins to version your API (hapiDays 2014)
PDF
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
005. a React project structure
Node.JS: Do you know the dependency of your dependencies dependency
Learning chef
007. Redux middlewares
WordPress + NGINX Best Practices with EasyEngine
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Nuxt.js - Introduction
Play framework And Google Cloud Platform GCP.
Modern infrastructure as code with ansible cake fest 2021
Fast Slim Correct: The History and Evolution of JavaScript.
React server side rendering performance
Play Framework on Google App Engine - Productivity Stack
WebAssembly vs JavaScript: What is faster?
Webpack Tutorial, Uppsala JS
深入淺出RoR
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
WebAssembly in Houdini CSS, is it possible?
Create your-own-gem-with-github-jeweler-rubygems
Using hapi plugins to version your API (hapiDays 2014)
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
Ad

Similar to ReactJS Workflows (20)

PDF
Installing Webpack with React JS from Scratch.pdf
PDF
Introduction to Webpack - Ordina JWorks - CC JS & Web
PDF
Introduction of webpack 4
PPTX
WEBPACK
PDF
Webpack: What it is, What it does, Whether you need it
PDF
Bundle your modules with Webpack
PDF
Symfony Live 2018 - Développez votre frontend avec ReactJS et Symfony Webpack...
PPTX
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
PPT
PPTX
Webpack and Web Performance Optimization
PDF
Reactjs Basics
PDF
Webpack presentation
PPTX
Introduction to Webpack : A Beginners Giude
PPTX
Webpack/Parcel: What’s Happening Behind the React App?
PPTX
DotNet MVC and webpack + Babel + react
PDF
Front-end build tools - Webpack
PPTX
Web summit.pptx
PDF
Webpack Encore Symfony Live 2017 San Francisco
PPTX
001. Introduction about React
Installing Webpack with React JS from Scratch.pdf
Introduction to Webpack - Ordina JWorks - CC JS & Web
Introduction of webpack 4
WEBPACK
Webpack: What it is, What it does, Whether you need it
Bundle your modules with Webpack
Symfony Live 2018 - Développez votre frontend avec ReactJS et Symfony Webpack...
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
Webpack and Web Performance Optimization
Reactjs Basics
Webpack presentation
Introduction to Webpack : A Beginners Giude
Webpack/Parcel: What’s Happening Behind the React App?
DotNet MVC and webpack + Babel + react
Front-end build tools - Webpack
Web summit.pptx
Webpack Encore Symfony Live 2017 San Francisco
001. Introduction about React
Ad

Recently uploaded (20)

PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
history of c programming in notes for students .pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Essential Infomation Tech presentation.pptx
PDF
System and Network Administraation Chapter 3
PDF
Understanding Forklifts - TECH EHS Solution
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
AI in Product Development-omnex systems
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
VVF-Customer-Presentation2025-Ver1.9.pptx
PTS Company Brochure 2025 (1).pdf.......
history of c programming in notes for students .pptx
top salesforce developer skills in 2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
CHAPTER 2 - PM Management and IT Context
Design an Analysis of Algorithms I-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Migrate SBCGlobal Email to Yahoo Easily
How to Choose the Right IT Partner for Your Business in Malaysia
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Essential Infomation Tech presentation.pptx
System and Network Administraation Chapter 3
Understanding Forklifts - TECH EHS Solution
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
AI in Product Development-omnex systems
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Operating system designcfffgfgggggggvggggggggg
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...

ReactJS Workflows

  • 3. BENEFITS ▸ No Webpack configurations ▸ No Babel configurations ▸ Sass & CSS modules (came with v2.0) ▸ Start coding right away
  • 4. CONFIGURATION SHOULD NOT STAND IN THE WAY OF GETTING STARTED. Dan Abramov TEXT
  • 6. THE MAGIC IS HIDDEN FROM YOUR VIEW ▸ What is going on? ▸ There will be always customizing issues** ▸ You can’t use latest updates ▸ Extra dependencies ▸ Eject
  • 9. Module Bundler Webpack is a build tool that puts all of your assets, including JavaScript, images, fonts, and CSS, in a dependency graph.
  • 10. BENEFITS ▸ Stable production deploys ▸ Dead asset elimination ▸ Fast ▸ Full of control ▸ Good documentation
  • 11. DEPENDENCIES ▸ webpack: We need Webpack to bundle our code. ▸ webpack-cli: We will be using some CLI features of Webpack to make our lives easier while writing some scripts. ▸ webpack-dev-server: we will create a server using the webpack-dev-server package. This is only meant to be used in the development environment, and not for production. This means while developing and working on my code, I don’t need a separate server like NodeJS to setup manually.
  • 12. DEPENDENCIES ▸ webpack-merge: To divide our configuration into chunks ▸ style-loader: This adds CSS to the DOM by injecting a script tag in the header ▸ sass-loader: For SCSS support ▸ webpack-visualizer-plugin: To see a visual representation of each of our bundle size — how much space they are taking and what are their dependencies.
  • 14. DEPENDENCIES ▸ node-sass: A dependency for sass-loader ▸ css-loader: To convert our .scss files into .css ▸ mini-css-extract-plugin: This plugin extracts CSS into separate files. It creates a CSS file per JS file which contains CSS. ▸ uglifyjs-webpack-plugin: To minify JavaScript code for production
  • 15. DEPENDENCIES ▸ optimize-css-assets-webpack-plugin: To minify CSS code for production ▸ html-webpack-plugin: This does more then generate an HTML file, it supports on demand .css and .js files automatically added to your HTML files on demand ▸ copy-webpack-plugin: Copies files/folders to your build folder. ▸ babel-loader: This is the loader that helps webpack compile .js files
  • 16. DEPENDENCIES ▸ @babel/core: Babel core compiler, this is a dependency that lets you use babel-loader ▸ @babel/preset-react Babel preset for React code ▸ @babel/preset-env: Babel preset that allows you to use the latest JavaScript ▸ @babel/pollyfill: Babel includes a polyfill that includes a custom regenerator runtime and core-js. This will emulate a full ES2015+ environment. This means support for async/await type of cool syntax sugar.
  • 17. DEPENDENCIES ▸ @babel/plugin-proposal-class-properties: Coverts your class syntax into a function for browsers that don’t support class syntax ▸ @babel/plugin-syntax-dynamic-import: This is what helps with code splitting. Webpack ships with code splitting by default (Since webpack 1). But when you want to code split in webpack while you are using babel, then you need to use this plugin.
  • 21. REACT STYLESHEETS ▸ Classic Approach: Using Regular CSS Stylesheets  ▸ Styled Component ▸ CSS Modules Stylesheet ▸ CSS in JS ▸ * classnames package
  • 22. TESTS
  • 24. ADVANTAGES OF TEST ▸ Facilitates discovering bugs in the development phase, before it reaches users ▸ Enforces writing better code that is more modular, covers edge cases, and easily testable ▸ Lowers the risk when making large changes or refactors ▸ Provides documentation and helps the next engineer understand what the code should do
  • 26. WHAT ARE WE MISSING? ▸ Flux architecture ▸ Pre-commit ▸ Storybook ▸ Linters ▸ Deployment ▸ Error boundary