Skip to main content Skip to docs navigation

Bootstrap y Parcel

La guía oficial sobre cómo incluir y empaquetar el CSS y JavaScript de Bootstrap en tu proyecto usando Parcel.

¿Quieres ir directamente al final? Descarga el código fuente y la demostración de trabajo para esta guía desde el repositorio twbs/examples. También puedes abrir el ejemplo en StackBlitz, pero no podrás ejecutarlo porque Parcel no es compatible allí actualmente.

¿Qué es Parcel?

Parcel es un empaquetador de aplicaciones web diseñado para simplificar el proceso de desarrollo con una configuración cero lista para usar. Ofrece características que se encuentran en empaquetadores más avanzados mientras se enfoca en la facilidad de uso, lo que lo hace ideal para desarrolladores que buscan un inicio rápido.

Configuración

Estamos creando un proyecto Parcel con Bootstrap desde cero, por lo que existen algunos prerrequisitos y pasos previos antes de que podamos comenzar. Esta guía requiere que tengas instalado Node.js y cierta familiaridad con la terminal.

  1. Crea una carpeta de proyecto y configura npm. Crearemos la carpeta my-project e inicializaremos npm con el argumento -y para evitar que nos haga todas las preguntas interactivas.

    mkdir my-project && cd my-project
    npm init -y
    
  2. Instala Parcel. A diferencia de nuestra guía de Webpack, aquí solo hay una única dependencia de herramienta de compilación. Parcel instalará automáticamente transformadores de lenguaje (como Sass) a medida que los detecte. Usamos --save-dev para indicar que esta dependencia es solo para uso de desarrollo y no para producción.

    npm i --save-dev parcel
    
  3. Instala Bootstrap. Ahora podemos instalar Bootstrap. También instalaremos Popper ya que nuestros menús desplegables, popovers y tooltips dependen de él para su posicionamiento. Si no planeas usar esos componentes, puedes omitir Popper aquí.

    npm i --save bootstrap @popperjs/core
    

Ahora que tenemos todas las dependencias necesarias instaladas, podemos ponernos a trabajar en la creación de los archivos del proyecto e importando Bootstrap.

Estructura del proyecto

Ya hemos creado la carpeta my-project e inicializado npm. Ahora también crearemos nuestra carpeta src, la hoja de estilo y el archivo JavaScript para completar la estructura del proyecto. Ejecuta lo siguiente desde my-project, o crea manualmente la estructura de carpetas y archivos que se muestra a continuación.

mkdir {src,src/js,src/scss}
touch src/index.html src/js/main.js src/scss/styles.scss

Cuando hayas terminado, tu proyecto completo debería verse así:

my-project/
├── src/
│   ├── js/
│   │   └── main.js
│   ├── scss/
│   │   └── styles.scss
│   └── index.html
├── package-lock.json
└── package.json

En este punto, todo está en el lugar correcto, pero Parcel necesita una página HTML y un script npm para iniciar nuestro servidor.

Configurar Parcel

Con las dependencias instaladas y nuestra carpeta de proyecto lista para que comencemos a programar, ahora podemos configurar Parcel y ejecutar nuestro proyecto localmente. Parcel en sí no requiere un archivo de configuración por diseño, pero sí necesitamos un script npm y un archivo HTML para iniciar nuestro servidor.

  1. Completa el archivo src/index.html. Parcel necesita una página para renderizar, por lo que usamos nuestra página index.html para configurar un HTML básico, incluidos nuestros archivos CSS y JavaScript.

    <!doctype html>
    <html lang="es">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Bootstrap con Parcel</title>
        <link rel="stylesheet" href="scss/styles.scss">
        <script type="module" src="js/main.js"></script>
      </head>
      <body>
        <div class="container py-4 px-3 mx-auto">
          <h1>¡Hola, Bootstrap y Parcel!</h1>
          <button class="btn btn-primary">Botón primario</button>
        </div>
      </body>
    </html>
    

    Estamos incluyendo un poco de estilo de Bootstrap aquí con el div class="container" y el <button> para que podamos ver cuándo Parcel carga el CSS de Bootstrap.

    Parcel detectará automáticamente que estamos usando Sass e instalará el plugin de Sass para Parcel para admitirlo. Sin embargo, si lo deseas, también puedes ejecutar manualmente npm i --save-dev @parcel/transformer-sass.

  2. Agrega los scripts npm de Parcel. Abre el archivo package.json y agrega el siguiente script start al objeto scripts. Usaremos este script para iniciar nuestro servidor de desarrollo Parcel y renderizar el archivo HTML que creamos después de que se compile en el directorio dist.

    {
       // ...
       "scripts": {
         "start": "parcel serve src/index.html --public-url / --dist-dir dist",
         "test": "echo \"Error: no test specified\" && exit 1"
       },
       // ...
    }
    
  3. Y finalmente, podemos iniciar Parcel. Desde la carpeta my-project en tu terminal, ejecuta ese script npm recién agregado:

    npm start
    
    Servidor de desarrollo Parcel en ejecución

En la siguiente y última sección de esta guía, importaremos todo el CSS y JavaScript de Bootstrap.

Importar Bootstrap

La importación de Bootstrap en Parcel requiere dos importaciones, una en nuestro styles.scss y otra en nuestro main.js.

  1. Importa el CSS de Bootstrap. Agrega lo siguiente a src/scss/styles.scss para importar todo el Sass fuente de Bootstrap.

    // Importar todo el CSS de Bootstrap
    @import "bootstrap/scss/bootstrap";
    

    También puedes importar nuestras hojas de estilo individualmente si lo deseas. Lee nuestra documentación de importación de Sass para más detalles.

    Opcional: Es posible que veas advertencias de desaprobación de Sass con las últimas versiones de Dart Sass. Estas se pueden silenciar agregando la siguiente configuración en un archivo .sassrc.js en la carpeta raíz con lo siguiente:

    module.exports = {
      silenceDeprecations: ['import', 'mixed-decls', 'color-functions', 'global-builtin']
    }
    
  2. Importa el JS de Bootstrap. Agrega lo siguiente a src/js/main.js para importar todo el JS de Bootstrap. Popper se importará automáticamente a través de Bootstrap.

    // Importar todo el JS de Bootstrap
    import * as bootstrap from 'bootstrap'
    

    También puedes importar plugins de JavaScript individualmente según sea necesario para mantener reducido el tamaño de los paquetes:

    import Alert from 'bootstrap/js/dist/alert'
    
    // o bien, especifica qué plugins necesitas:
    import { Tooltip, Toast, Popover } from 'bootstrap'
    

    Lee nuestra documentación de JavaScript para obtener más información sobre cómo usar los plugins de Bootstrap.

  3. ¡Y listo! 🎉 Con el Sass y JS fuente de Bootstrap completamente cargados, tu servidor de desarrollo local ahora debería verse así:

    Servidor de desarrollo Parcel ejecutándose con Bootstrap

    Ahora puedes comenzar a agregar los componentes de Bootstrap que quieras usar. Asegúrate de consultar el proyecto de ejemplo de Parcel completo para saber cómo incluir Sass personalizado adicional y optimizar tu compilación importando solo las partes del CSS y JS de Bootstrap que necesites.


¿Ves algo incorrecto o desactualizado aquí? Por favor, abre un issue en GitHub. ¿Necesitas ayuda para solucionar problemas? Busca o inicia una discusión en GitHub.