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.
Completamos el formulario a nuestro agrado, después de crear nuestro proyecto vamos a clonarlo.
Vamos a nuestra terminal, elegimos nuestro directorio para clonar nuestro proyecto.
git clone URL_REPOSITORIO
2. Crear proyecto e instalar dependencias
Utilizamos el comando:
npm init -y
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"
}
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
También instalamos las siguientes dependencias:
npm install react react-dom sass prop-types
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"
]
}
.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
}
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"
})
]
};
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"
},
4. Estructura de proyecto
Vamos muy bien, ahora vamos a crear la estructura de nuestro proyecto, la cual es la siguiente:
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
Para construir nuestro proyecto:
npm run 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)