DEV Community

React without create react app. Start building your react project like a professional

Suraj Auwal on April 08, 2020

The memory of my first react app is still fresh in my memory. I can remember how ridiculously easy it was to set up a new project. But as I go deep...
Collapse
 
juniorbatistadev profile image
Junior Batista

Why do you say "like a professional"? You're saying using CRA is not "professional"?

Collapse
 
siradji profile image
Suraj Auwal • Edited

Yes like a professional. You can't use CRA for production apps.

Edit: The comment above is misleading and i apologize for that. You can use CRA in production, but for me, CRA is just a quick prototyping tool that i don't use in production.

Collapse
 
timhlm profile image
moth

The react and vue cli tools are both leveraged for more production apps than you can imagine

Thread Thread
 
siradji profile image
Suraj Auwal

Yes that's true and i apologize for my misleading comment.

Thread Thread
 
timhlm profile image
moth

No sweat, we're all here to learn together. Keep the articles coming!

Thread Thread
 
mohammedasker profile image
Mohammed Asker

That's the spirit of the DEV community! Openly admitting our mistakes, apologizing, and learning from each other.

Technicals aside, you're all amazing people. Keep it up!

Collapse
 
davelsan profile image
David Velasco • Edited

Please, elaborate.

I thought these CLI toolchains (Angular, React, Vue, all have them) not only eased app bootstrapping, but also ensured optimization and best practices.

Don't get me wrong, I understand there are genuine configuration-related reasons to build from scratch. I also believe we all should know how to build our apps without CLI aid, as it serves not only to understand the whole process, but to debug potential issues too.

However, I am truly curious about why you think CRA should not be used for production. Would you say this also applies to Vue and Angular?

Thread Thread
 
siradji profile image
Suraj Auwal

You can use CRA for real-world apps, but for me and most people i work with, tend to stay away from CRA in production. The reason is its lack of flexibility. You can make it flexible by ejecting and adding your stuff, but why?

I still use CRA and most of my toy projects are built using CRA.

In my perspective, CRA is very useful for quick prototyping, but for production, i'd build it from scratch.

My comment is misleading and i apologize for that.

Collapse
 
codeprototype profile image
Kevin Le

I do like your post a lot. But you're contradicting yourself. "You can't use CRA for production". Point taken. But then why "webpack-dev-server"? I understand your point completely, it just might send a wrong message.

Thread Thread
 
siradji profile image
Suraj Auwal

Sorry for the contradiction Kevin. One thing about programming is that everyone has his preferences.
I don't use CRA for production but others do. My reasons include lack of flexibility, tons of unnecessary stuffs etc.
And let's be honest, how many real-world apps were built with CRA? Not that many.

Hot reload? Yarn start? Well, webpack-dev-server is actually what enables us to do that.

Collapse
 
xmelsky profile image
@xmelsky

Thank you for the article. but your code snippets are completely confusing:
const HTMLplugin = require(‘html-webpack-plugin’) declared but later new HTMLwebpackplugin is used.

<html lang=”en”>
<head>
<title>React boilerplate</title>
</head>
<body>
<div id=’root’></div>

  • here single quotes and double quotes mixed And there is a lot of confusing quotes - import React from ‘react’

And finally this line - entry: path.join(__dirname, ‘src’ ‘index.js’), what is the path you are passing to the join? ‘src’ ‘index.js’ ???

Collapse
 
elvisquilapi profile image
Wentru

Friend your project is sick of bad! If you work that way with clients, better dedicate yourself to study!