{"id":2366,"date":"2025-01-21T15:16:10","date_gmt":"2025-01-21T19:16:10","guid":{"rendered":"https:\/\/saemas.com\/sitio_web\/?p=2366"},"modified":"2025-03-02T11:15:03","modified_gmt":"2025-03-02T15:15:03","slug":"laravel-11-integrar-con-vitejs-y-react","status":"publish","type":"post","link":"https:\/\/saemas.com\/sitio_web\/laravel-11-integrar-con-vitejs-y-react\/","title":{"rendered":"Laravel 11: Integrar con ViteJs para escribir c\u00f3digo javascript puro y en React"},"content":{"rendered":"\n<p>Teclear en la l\u00ednea de comandos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer create-project --prefer-dist laravel\/laravel laravelvitereact<\/code><\/pre>\n\n\n\n<p>Ubicar el archivo app\/Providers\/AppServiceProvider.php y escribir al inicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Illuminate\\Support\\Facades\\Schema;<\/code><\/pre>\n\n\n\n<p>Luego agregar en la funci\u00f3n Boot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Schema::defaultStringLength(191);<\/code><\/pre>\n\n\n\n<p>Asignar permisos 777 a las siguientes carpetas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod -R 777 storage\/framework\/views<br>chmod -R 777 storage\/logs<\/code><\/pre>\n\n\n\n<p>En el archivo .env actualizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APP_URL=http:\/\/localhost\/laravelvitereact\/public<br><br>DB_CONNECTION=mysql<br>DB_HOST=127.0.0.1<br>DB_PORT=3306<br>DB_DATABASE=nombreDeLaBaseDeDatos<br>DB_USERNAME=usuarioBaseDeDatos<br>DB_PASSWORD=ClaveUsuarioBaseDeDatos<br><\/code><\/pre>\n\n\n\n<p>Posicionarse en en la carpeta raiz del proyecto e instalar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install<br>npm i react<br>npm i react-dom<br>npm i @vitejs\/plugin-react<br>npm install @vitejs\/plugin-react-refresh@1.3.6<\/code><\/pre>\n\n\n\n<p>Actualizar el archivo vite.config.js en la carpeta ra\u00edz del proyecto<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { defineConfig } from 'vite';<br>import laravel from 'laravel-vite-plugin';<br>import reactRefresh from '@vitejs\/plugin-react-refresh';<br><br>export default defineConfig({<br>    plugins: &#91;<br>        laravel({<br>            input: &#91;'resources\/css\/app.css', 'resources\/js\/app.js'],<br>            refresh: true,<br>        }),<br>        reactRefresh()<br>    ],<br>});<br><\/code><\/pre>\n\n\n\n<p>Iniciar el servidor <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run dev<\/code><\/pre>\n\n\n\n<p>Para probar si todo est\u00e1 funcionando correctamente hacer clic en en el enlace: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;localhost\/laravelvitereact\/public<\/code><\/pre>\n\n\n\n<p>Agregar alg\u00fan c\u00f3digo de prueba al archivo resources\/js\/app.js, por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>console.log('Hola mundo');<\/code><\/pre>\n\n\n\n<p>Abrir la herramienta de desarrollador en el navegador y verificar que se env\u00edo a la c\u00f3nsola el mensaje: Hola mundo !<\/p>\n\n\n\n<p>Para probar los estilos, primero sustituir el contenido el archivo resources\/views\/welcome.blade.php por el siguiente:<\/p>\n\n\n\n<p>&lt;!DOCTYPE html&gt;<br>&lt;html lang=\u00bb{{ str_replace(&#8216;_&#8217;, &#8216;-&#8216;, app()-&gt;getLocale()) }}\u00bb&gt;<br>    &lt;head&gt;<br>        &lt;meta charset=\u00bbutf-8&#8243;&gt;<br>        &lt;meta name=\u00bbviewport\u00bb content=\u00bbwidth=device-width, initial-scale=1&#8243;&gt;<br>        &lt;title&gt;Laravel&lt;\/title&gt;<br>        @vite([&#8216;resources\/css\/app.css&#8217;, &#8216;resources\/js\/app.js&#8217;])<br>    &lt;\/head&gt;<br>    &lt;body&gt;    <br>        &lt;p&gt;Hola mundo !&lt;\/p&gt;<br>        &lt;div id=\u00bbusuario\u00bb&gt;<br>        &lt;\/div&gt;<br>    &lt;\/body&gt;<br>&lt;\/html&gt;<br><br>A\u00f1adimos alg\u00fan c\u00f3digo a resources\/css\/app.css:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>body {<br>    background: blue;<br>  }<\/code><\/pre>\n\n\n\n<p>Para visualizar los cambios refrescar: http:\/\/localhost\/laravelvitereact\/public<\/p>\n\n\n\n<p>Crear el componente resources\/js\/componentes\/Usuario.jsx con el siguiente contenido:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import React from 'react';<br>import { createRoot } from 'react-dom\/client';<br><br>function Usuario() {<br> return (<br>    &lt;p&gt;Hola desde React !&lt;\/p&gt;<br>    );<br>}<br>export default Usuario;<br><br>const rootElement = document.getElementById('usuario')<br>const root = createRoot(rootElement);<br><br>root.render(&lt;Usuario \/&gt;);<\/code><\/pre>\n\n\n\n<p>Importar el componente Usuario.jsx en resources\/js\/app.js<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import '.\/bootstrap';<br>import Usuario from '.\/componentes\/Usuario.jsx';<br><br>console.log('Hola mundo !');<br><\/code><\/pre>\n\n\n\n<p>Para visualizar los cambios, recargar la p\u00e1gina https:\/\/localhost\/laravelvitereact\/public<\/p>\n\n\n\n<p>Para crear los archivos de producci\u00f3n, en la l\u00ednea de comando presionamos \u00abcontrol+c\u00bb y ejecutamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run build<\/code><\/pre>\n\n\n\n<p>Para visualizar escribimos en la barra del navegador: http:\/\/localhost\/laravelvitereact\/public y listo !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Teclear en la l\u00ednea de comandos: Ubicar el archivo app\/Providers\/AppServiceProvider.php y escribir al inicio: Luego agregar en la funci\u00f3n Boot: Asignar permisos 777 a las siguientes carpetas: En el archivo .env actualizar: Posicionarse en en la carpeta raiz del proyecto e instalar: Actualizar el archivo vite.config.js en la carpeta ra\u00edz del proyecto Iniciar el servidor [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"material-hide-sections":[],"footnotes":""},"categories":[3,14,66],"tags":[2,61,67,87],"class_list":["post-2366","post","type-post","status-publish","format-standard","hentry","category-javascript","category-laravel","category-react-js","tag-javascript","tag-laravel","tag-reactjs","tag-vite"],"_links":{"self":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/comments?post=2366"}],"version-history":[{"count":11,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2366\/revisions"}],"predecessor-version":[{"id":2397,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2366\/revisions\/2397"}],"wp:attachment":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/media?parent=2366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/categories?post=2366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/tags?post=2366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}