DEV Community

Cover image for Create a project in React without create-react-app/vite 2023 (Spanish)
Alfredo Carreón Urbano
Alfredo Carreón Urbano

Posted on

Create a project in React without create-react-app/vite 2023 (Spanish)

Introducción

Anteriormente escribí una publicación sobre cómo crear una aplicación de React desde cero, ha pasado algún tiempo y ha quedado obsoleta la configuración.

Objetivo

Así que mi objetivo es crear un proyecto con una nueva configuración y comprender lo que se necesita para crear una aplicación de React.

Tener nociones de cómo funciona por detrás y tener un cierto control sobre la estructura de la aplicación.

Herramientas antes de iniciar

  • Un editor de código, puedes usar VSCode o el editor de tu preferencia.
  • Un navegador actualizado.
  • Terminal de comandos.
  • Tener instalado Node y npm.
  • Tener instalado Git y tener una cuenta en Github.

1. Crear un repositorio en GitHub

Vamos a crear un nuevo repositorio en Github.

Crear un nuevo repositorio en Github

Completamos el formulario a nuestro agrado, después de crear nuestro proyecto vamos a clonarlo.

Repositorio creado

Vamos a nuestra terminal, elegimos nuestro directorio para clonar nuestro proyecto.

git clone URL_REPOSITORIO 
Enter fullscreen mode Exit fullscreen mode

2. Crear proyecto e instalar dependencias

Utilizamos el comando:

npm init -y 
Enter fullscreen mode Exit fullscreen mode

Se crea nuestro package.json con una configuración por defecto.

{ "name": "react-app-2023", "version": "1.0.0", "description": "Create a project in React without create-react-app 2023 (Spanish)", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/AlfredoCU/react-app-2023.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/AlfredoCU/react-app-2023/issues" }, "homepage": "https://github.com/AlfredoCU/react-app-2023#readme" } 
Enter fullscreen mode Exit fullscreen mode

Ahora vamos a instalar las dependencias de configuración:

npm install --save @babel/core @babel/preset-env @babel/preset-react babel-loader babel-plugin-transform-class-properties css-loader html-loader html-webpack-plugin react-hot-loader sass-loader style-loader webpack webpack-cli webpack-dev-server 
Enter fullscreen mode Exit fullscreen mode

También instalamos las siguientes dependencias:

npm install react react-dom sass prop-types 
Enter fullscreen mode Exit fullscreen mode

Usted puede agregar más paquetes si lo desea, como styled-component, Tailwind CSS, Axios, Redux, Apollo y GraphQL. Yo solamente voy a instalar lo necesario para un proyecto pequeño.

3. Creando archivos de configuración

Vamos a crear los siguientes archivos de configuración en la raíz de nuestro proyecto.

.babelrc

{ "presets": [ "@babel/preset-env", "@babel/preset-react" ], "plugins": [ "transform-class-properties" ] } 
Enter fullscreen mode Exit fullscreen mode

.prettierrc

{ "tabWidth": 2, "arrowParens": "avoid", "bracketSpacing": true, "endOfLine": "auto", "htmlWhitespaceSensitivity": "css", "jsxBracketSameLine": false, "jsxSingleQuote": false, "parser": "babel-ts", "printWidth": 80, "proseWrap": "preserve", "semi": true, "singleQuote": false, "trailingComma": "none", "useTabs": false } 
Enter fullscreen mode Exit fullscreen mode

webpack.config.js

const path = require("path"); const webpack = require("webpack"); const HTMLWebpackPlugin = require("html-webpack-plugin"); module.exports = { entry: "./src/index.js", output: { filename: "bundle.js", path: path.resolve("dist"), publicPath: "/" }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, use: "babel-loader" }, { test: /\.html$/, use: "html-loader" }, /* Choose only one of the following two: if you're using plain CSS, use the first one, and if you're using a preprocessor, in this case SASS, use the second one */ { test: /\.css$/, use: ["style-loader", "css-loader"] }, { test: /\.scss$/, use: ["style-loader", "css-loader", "sass-loader"] } ] }, plugins: [ new HTMLWebpackPlugin({ template: "./public/index.html", filename: "./index.html" }) ] }; 
Enter fullscreen mode Exit fullscreen mode

package.json

 "scripts": { "start": "webpack serve --config ./webpack.config.js --mode development --port 3000", "build": "webpack --mode development", "test": "echo \"Error: no test specified\" && exit 1" }, 
Enter fullscreen mode Exit fullscreen mode

4. Estructura de proyecto

Vamos muy bien, ahora vamos a crear la estructura de nuestro proyecto, la cual es la siguiente:

Estructura del proyecto

Al final de la publicación se encuentran los enlaces del repositorio donde podrá ver todo el código.

5. Ejecutamos los comandos

Para correr el proyecto en http://localhost:3000/:

npm start 
Enter fullscreen mode Exit fullscreen mode

Localhost

Para construir nuestro proyecto:

npm run build 
Enter fullscreen mode Exit fullscreen mode

Build

Terminamos 😀

Conclusión

Es probable que en tu vida laboral te asignen proyectos muy grandes y con varios años de desarrollo, los cuales tengan una configuración creada desde 0.

También puede que te enfrentes a desafíos para conseguir un trabajo y te pidan crear un proyecto con una configuración creada por ti.

Así que espero que esta publicación sea de mucha ayuda y feliz año nuevo 🥳

Top comments (0)