<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vite Archives - HERNANDO J. CHAVES | DESARROLLADOR WORDPRESS</title>
	<atom:link href="https://hernandochaves.com/category/vite/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Sat, 26 Apr 2025 08:39:40 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://hernandochaves.com/wp-content/uploads/2025/07/cropped-cropped-avatar_rounded-32x32.webp</url>
	<title>Vite Archives - HERNANDO J. CHAVES | DESARROLLADOR WORDPRESS</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cómo optimizar tu Flujo de Trabajo en WordPress aprovechando la Recarga en Caliente de Vite</title>
		<link>https://hernandochaves.com/como-optimizar-tu-flujo-de-trabajo-en-wordpress-aprovechando-la-recarga-en-caliente-de-vite/</link>
		
		<dc:creator><![CDATA[Hernando J Chaves]]></dc:creator>
		<pubDate>Fri, 01 Nov 2024 11:21:49 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Themes WP]]></category>
		<category><![CDATA[Vite]]></category>
		<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://hernandochaves.com/?p=173</guid>

					<description><![CDATA[<p>En un artículo anterior vimos cómo integrar Vite a un tema WordPress para automatizar algunos procesos y mejorar el flujo de trabajo, en este artículo complementario vamos a aprender cómo aplicar el módulo de recarga en caliente de Vite aplicado al desarrollo de temas de WordPress, es decir que la página se recarga ante cualquier</p>
<p>The post <a href="https://hernandochaves.com/como-optimizar-tu-flujo-de-trabajo-en-wordpress-aprovechando-la-recarga-en-caliente-de-vite/">Cómo optimizar tu Flujo de Trabajo en WordPress aprovechando la Recarga en Caliente de Vite</a> appeared first on <a href="https://hernandochaves.com">HERNANDO J.  CHAVES | DESARROLLADOR WORDPRESS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En un artículo anterior vimos <a href="https://hernandochaves.com/como-usar-vite-js-en-un-tema-de-wordpress-paso-a-paso/" target="_blank" rel="noopener">cómo integrar Vite a un tema WordPress</a> para automatizar algunos procesos y mejorar el flujo de trabajo, en este artículo complementario vamos a aprender cómo aplicar el módulo de recarga en caliente de <a href="https://vite.dev/" target="_blank" rel="noopener">Vite</a> aplicado al desarrollo de temas de WordPress, es decir que la página se recarga ante cualquier cambio que hagamos cuando estamos trabajando en un ambiente de desarrollo.  Si alguna vez has trabajado sin una herramienta de recarga en caliente, sabes lo tedioso que puede ser el proceso de desarrollo. Entre los problemas más comunes se encuentran:</p>
<ul>
<li><strong>Largos tiempos de espera para ver cambios</strong>: Cada vez que se realiza una modificación en el código es necesario recargar manualmente el navegador lo que consume tiempo y corta el flujo de trabajo.</li>
<li><strong>Errores difíciles de detectar</strong>: Sin recarga en caliente es fácil pasar por alto pequeños errores que podrían haberse solucionado rápidamente al ver los cambios instantáneamente.</li>
<li><strong>Perdida de productividad</strong>: La necesidad de recargar constantemente el navegador no solo es frustrante, sino que también disminuye la eficiencia del desarrollo.</li>
</ul>
<h3>¿Cómo Funciona?</h3>
<p>Cuando realizas un cambio en tu código, Vite automáticamente detecta la modificación y actualiza solo la parte afectada de la página. Esto es posible gracias a los módulos ES nativo del navegador, que permiten una integración más rápida y eficiente. En lugar de reconstruir todo el proyecto byte solo recopila el módulo específico que ha cambiado y lo inyecta en la página.</p>
<h2>Hot Reload de Vite en el desarrollo de temas de WordPress</h2>
<h3>Configurando el archivo vite.config.js</h3>
<p>Lo primero que vamos a hacer es configurar el archivo vite.config.js de Vite para que detecte los archivos .php y envie una señal al servidor y recargue la página, para eso debes agregar las siguientes lineas de código en la sección de plugins:</p>
<pre class=" line-numbers"><code class="language-javascript">
        //Archivo vite.config.js
	plugins: [ // Define un array de plugins que Vite utilizará
            {
				name: 'php', // Nombre del plugin 
				handleHotUpdate({ file, server }) { // maneja la actualización en caliente
					if (file.endsWith('.php')) { // Comprueba si el archivo que ha cambiado termina en '.php'
					server.ws.send({ type: 'full-reload' }); // Envía una señal al servidor para recargar completamente la página si es un archivo PHP
					}
				}
            }
        ]
</code></pre>
<h3>Configurando el archivo funtions.php</h3>
<p>En el archivo functions.php de tu tema de WordPress, vamos a definir algunas constantes, la primera nos servirá para detectar si estamos en un entorno de producción o de desarrollo:</p>
<pre class=" line-numbers"><code class="language-php">
        if ( ! defined( 'DEV' ) ) define( 'DEV', false );
        define('URL_FILE', get_template_directory_uri() . '/dist');
        const URL_ASSETS = DEV ? 'http://localhost:5173/src' : URL_FILE;
</code></pre>
<p>Entonces cuando DEV sea igual a true significa que estamos en un entorno de desarrollo y los archivos seran tomados de la carpeta «src/» y cuando DEV sea false, estaremos en un entorno de producción y encolaremos los archivos que estan en la carpeta «dist» así:</p>
<pre class=" line-numbers"><code class="language-php">
        const URL_ASSETS = DEV ? 'http://localhost:5173/src' : URL_FILE . '/dist';
</code></pre>
<p>Aquí el puerto 5173 es el que abre vite cuando ejecutamos en la consola:</p>
<pre class=" line-numbers"><code class="language-javascript">
        npm run dev
</code></pre>
<p>Ahora vamos a encolar nuestros archivos teniendo en cuenta esta estructura de archivos:</p>
<pre class=" line-numbers"><code class="language-none">
src
└── assets
    ├── js
    │   └── scripts.js
    └── css
        └── custom.js
</code></pre>
<p>Nuestra función de encolamiento dentro de tu archivo functions.php se veria así:</p>
<pre class=" line-numbers"><code class="language-php">
    function hch_scripts() {
        if( DEV ):
            wp_enqueue_script('vite-reload', 'http://localhost:5173/@vite/client', [], null, false);
        endif;

        wp_enqueue_script('scripts', URL_FILES . '/js/scripts.js', [], '1.0.0', true );
        wp_enqueue_style('custom', URL_FILES . '/css/custom.css', [], '1.0.0', 'all');
    }
    add_action( 'wp_enqueue_scripts', 'hch_scripts' );
</code></pre>
<p>Dos cosas importantes a considerar, la primera es que aquí la variable URL_FILES es dinámica en función del entorno de desarrollo en que nos encontremos, y la segunda es que hemos encolado un archivo javascript de vite que es el que hará la magia de la recarga y solo se encolará si estamos en desarrollo:</p>
<pre class=" line-numbers"><code class="language-php">
    if( DEV ):
        wp_enqueue_script('vite-reload', 'http://localhost:5173/@vite/client', [], null, false);
    endif;    
</code></pre>
<p>En estos momentos en tu consola debe estar saliendo el siguiente error:</p>
<pre class=" line-numbers"><code class="language-javascript">
    Uncaught SyntaxError: Cannot use import statement outside a module
</code></pre>
<p>Este error ocurre cuando intentas usar la declaración «import» en un archivo javascript que no está configurado como un módulo ES. Para solucionarlo necesitas asegurarte que tu archivo JavaScript esté siendo tratado como un módulo ES, y eso lo conseguimos con estas lineas de código:</p>
<pre class=" line-numbers"><code class="language-php">
    
    function hch_script_loader_tag( $tag, $handle )
    {
        if( $handle === 'vite-reload' ):
            return str_replace(' src', ' type="module" src', $tag);
        endif;
        return $tag;
    }
    add_filter('script_loader_tag', 'hch_script_loader_tag',10, 2);   
</code></pre>
<p>Aquí lo que hacemos es verificar que el archivo sea el que encolamos de Vite y luego reemplazamos el atributo «src» por el atributo «type» que es el que soluciona el problema.</p>
<h3>Y listo!</h3>
<p>Implementar la recarga en caliente con Vite revoluciona el flujo de trabajo de desarrollo web. Eliminar la necesidad de recargar manualmente el navegador cada vez que se realiza un cambio ahorra tiempo y mejora significativamente la productividad. Además, al ver los resultados de los cambios en tiempo real, los desarrolladores podemos detectar y corregir errores de manera más eficiente, lo que lleva a un producto final de mayor calidad.<br />
Al incorporar Vite en tu desarrollo, no solo optimizas el tiempo y esfuerzo, sino que también enriqueces la experiencia de desarrollo, haciéndola más fluida y gratificante.</p>
<p>The post <a href="https://hernandochaves.com/como-optimizar-tu-flujo-de-trabajo-en-wordpress-aprovechando-la-recarga-en-caliente-de-vite/">Cómo optimizar tu Flujo de Trabajo en WordPress aprovechando la Recarga en Caliente de Vite</a> appeared first on <a href="https://hernandochaves.com">HERNANDO J.  CHAVES | DESARROLLADOR WORDPRESS</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo usar Vite JS en un tema de WordPress Paso a Paso</title>
		<link>https://hernandochaves.com/como-usar-vite-en-el-desarrollo-de-un-tema-para-wordpress/</link>
		
		<dc:creator><![CDATA[Hernando J Chaves]]></dc:creator>
		<pubDate>Wed, 11 Sep 2024 10:27:19 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Themes WP]]></category>
		<category><![CDATA[Vite]]></category>
		<category><![CDATA[code]]></category>
		<guid isPermaLink="false">http://hernandochaves.com/?p=26</guid>

					<description><![CDATA[<p>Uno de los problemas comunes que enfrentamos cuando desarrollamos temas para WordPress (Y en general para cualquier proyecto de desarrollo) es la gestión del código y los recursos de manera eficiente. Sin las herramientas adecuadas, el flujo de trabajo puede volverse engorroso y propenso a errores, desde la optimización de recursos hasta la implementación de</p>
<p>The post <a href="https://hernandochaves.com/como-usar-vite-en-el-desarrollo-de-un-tema-para-wordpress/">Cómo usar Vite JS en un tema de WordPress Paso a Paso</a> appeared first on <a href="https://hernandochaves.com">HERNANDO J.  CHAVES | DESARROLLADOR WORDPRESS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Uno de los problemas comunes que enfrentamos cuando desarrollamos temas para WordPress (Y en general para cualquier proyecto de desarrollo) es la gestión del código y los recursos de manera eficiente. Sin las herramientas adecuadas, el flujo de trabajo puede volverse engorroso y propenso a errores, desde la optimización de recursos hasta la implementación de cambios en tiempo real, lo que lleva a una disminución en la productividad y calidad del código.</p>
<p>Aquí es donde Vite puede ser una solución efectiva. Vite es un builder de módulos de desarrollo rápido que aprovecha la potencia de los módulos ES nativos del navegador para ofrecer una experiencia de desarrollo fluida y rápida. En este artículo, vamos a aprender una forma de utilizar empaquetadores como Vite para optimizar el flujo de trabajo en la creación de temas para WordPress.</p>
<h2>Importancia del Uso de Empaquetadores</h2>
<p>Los empaquetadores son herramientas esenciales en el desarrollo moderno de sitios web. Nos permiten:</p>
<ul>
<li>Combinar y minimizar archivos CSS y JavaScript para mejorar el rendimiento del sitio.</li>
<li>Utilizar módulos ES6 y otras funcionalidades modernas del lenguaje que no son nativamente soportadas por todos los navegadores.</li>
<li>Automatizar tareas repetitivas como la recarga del navegador, preprocesado de CSS (Sass, Less), y la optimización de imágenes.</li>
<li>Garantizar un código más limpio y estructurado, facilitando el mantenimiento y la colaboración en equipos.</li>
</ul>
<h3>1. Instalación de Vite</h3>
<p>Lo primero que necesitas para instalar <a href="https://vite.dev/" target="_blank" rel="noopener">Vite</a>, es tener <a href="https://nodejs.org/en/" target="_blank" rel="noopener">Node.js</a> instalado en tu máquina. Luego, puedes crear un nuevo proyecto con Vite siguiendo estos pasos:</p>
<pre class=" line-numbers"><code class="language-markdown">
    // Inicia un nuevo proyecto
    cd my-wordpress-theme
    npm install -D vite       
    </code></pre>
<h3>2. Estructura del Proyecto</h3>
<p>Organiza tu proyecto para facilitar el desarrollo. Aquí tienes una estructura básica:</p>
<pre class=" line-numbers"><code class="language-none">
src
└── assets
    ├── js
    │   └── scripts.js
    └── css
        └── custom.js
</code></pre>
<h3></h3>
<h3>3. Integración con WordPress</h3>
<p>Asegúrate de que WordPress cargue los archivos generados por Vite. En el archivo functions.php de tu tema, añade el siguiente código:</p>
<pre class=" line-numbers"><code class="language-php">
    function enqueue_vite_assets() {
        wp_enqueue_script('vite-js', get_template_directory_uri() . '/dist/assets/scripts.js', array(), null, true);
        wp_enqueue_style('vite-css', get_template_directory_uri() . '/dist/assets/custom.css', array(), null);
    }
    add_action('wp_enqueue_scripts', 'enqueue_vite_assets');
    </code></pre>
<h3></h3>
<p>En este caso hemos vinculado los archivos finales compilados en la carpeta «dist/», pero si aún estas en étapa de desarrollo debes reemplazar la ruta de los archivos encolados en «dist/» por «src/».</p>
<p>&nbsp;</p>
<h3>4. Configurando Vite en un tema de WordPress</h3>
<h4>1. Importación de Módulos</h4>
<p>Para empezar, necesitas importar las herramientas básicas que utilizarás en tu configuración de Vite.</p>
<pre class=" line-numbers"><code class="language-javascript">
        // Importa el método "resolve" del módulo "path"
        import { resolve } from 'path';

        // Importa el método "defineConfig" de "vite"
        import { defineConfig } from 'vite';
    </code></pre>
<p>&nbsp;</p>
<h4 class="text-base-strong">2. Configuración Básica de Vite</h4>
<p><span class="">Aquí es donde definimos la configuración principal de Vite y la exportamos. Esta configuración básica es crucial para que Vite reconozca y aplique los ajustes que queremos.</span></p>
<pre class=" line-numbers"><code class="language-javascript">
        // Exporta la configuración del proyecto Vite usando "defineConfig", lo que permite a Vite reconocer y aplicar esta configuración.
        export default defineConfig({
            // Define la base pública del proyecto.
            base: '/',
        });
    </code></pre>
<h4></h4>
<h4 class="text-base-strong">3. Opciones de Construcción</h4>
<p><span class="">Para optimizar y gestionar los recursos de manera eficiente, configuramos Rollup, el bundler que Vite utiliza por debajo, con opciones específicas:</span></p>
<pre class=" line-numbers"><code class="language-javascript">
      build: { // Configuración de las opciones de construcción 
        rollupOptions: { // Opciones específicas para Rollup, el bundler que utiliza Vite por debajo
          input: { // Define las entradas del bundle
            custom: resolve(__dirname, 'src/css/custom.css'), // Especifica la ruta del archivo CSS personalizado como una entrada
            scripts: resolve(__dirname, 'src/js/scripts.js') // Especifica la ruta del archivo JavaScript como una entrada
          },
          output: { // Configuración de la salida del bundle
            entryFileNames: 'js/[name].js', // Define el formato de los nombres de los archivos de entrada
            assetFileNames: infoFile =&gt; { // Función para definir los nombres de los archivos de activos (como CSS y otros)
              const name = infoFile.names &amp;&amp; infoFile.names.length &gt; 0 ? infoFile.names[0] : 'default'; // Obtiene el nombre del archivo, o usa 'default' si no hay nombres
              if (name.endsWith('.css')) { // Si el nombre del archivo termina en '.css'
                return `css/${name}`; // Almacena los archivos CSS en la carpeta 'css'
              }
              return name; // De lo contrario, devuelve el nombre tal cual
            }
          }
        }
      },
      
    </code></pre>
<h4 class="text-base-strong">4. Definir la Raíz del Proyecto</h4>
<p><span class="">Este paso es crucial para establecer la raíz del proyecto correctamente, utilizando <code class="font-ligatures-none mx-0.5 rounded-[4px] border border-stroke-300 bg-spot-peach-200/50 px-1 py-px font-mono text-foreground-800 text-sm dark:bg-midnight-900">resolve</code> para obtener la ruta absoluta del directorio actual:</span></p>
<pre class=" line-numbers"><code class="language-javascript">
        // Define la raíz del proyecto utilizando "resolve" para obtener la ruta absoluta del directorio actual (__dirname)
        root: resolve(__dirname),

    </code></pre>
<h4 class="text-base-strong">5. Plugins</h4>
<p><span class="">Para una mayor flexibilidad y funcionalidad, puedes incluir plugins. Por ejemplo, podrías necesitar un plugin para manejar la recarga de archivos PHP, para el manejo de imágenes etc:</span></p>
<pre class=" line-numbers"><code class="language-javascript">
        plugins: [ // Define un array de plugins que Vite utilizará
             ]
      
    </code></pre>
<h2>Conclusión</h2>
<p>Implementar Vite en el desarrollo de un tema para WordPress puede mejorar significativamente la experiencia de desarrollo. Desde la optimización de la carga de recursos hasta la gestión eficiente de dependencias y la actualización en tiempo real, Vite ofrece herramientas poderosas que pueden solucionar muchos de los problemas comunes que enfrentan los desarrolladores. Con esta configuración básica, puedes empezar a disfrutar de un entorno de desarrollo más rápido y eficiente.</p>
<p>The post <a href="https://hernandochaves.com/como-usar-vite-en-el-desarrollo-de-un-tema-para-wordpress/">Cómo usar Vite JS en un tema de WordPress Paso a Paso</a> appeared first on <a href="https://hernandochaves.com">HERNANDO J.  CHAVES | DESARROLLADOR WORDPRESS</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
