Saltar al contenido principal

build_runner

Una herramienta para construir, probar y ejecutar código Dart.

El paquete build_runner proporciona comandos de propósito general para generar archivos, incluyendo la prueba de los archivos generados o el servicio de archivos tanto de origen como generados. Esta página explica cómo usar build_runner. Para aprender a usar build_runner con un paquete específico, consulta la documentación de ese paquete.

Los comandos de build_runner funcionan con builders (constructores): paquetes que usan el sistema de construcción de Dart para generar archivos de salida a partir de archivos de entrada. Por ejemplo, los paquetes json_serializable y built_value_generator definen builders que generan código Dart.

Aunque el sistema de construcción de Dart es una buena alternativa a la reflexión (que tiene problemas de rendimiento) y a las macros (que los compiladores de Dart no soportan), puede hacer más que solo leer y escribir código Dart. For ejemplo, el paquete sass_builder implementa un builder que genera archivos .css a partir de archivos .scss y .sass.

Configurar build_runner

#

Para usar build_runner, agrega una dev dependency (dependencia de desarrollo) de build_runner al pubspec de tu aplicación:

yaml
dev_dependencies:
  # ···
  build_runner: ^2.15.0
  build_test: ^3.5.15

Depender de build_test es opcional; hazlo si vas a probar tu código.

Como es habitual después de los cambios en pubspec.yaml, ejecuta dart pub get o dart pub upgrade:

dart pub get

Usar comandos integrados

#

El siguiente es un ejemplo del uso del comando build de build_runner:

# From a directory that contains a pubspec.yaml file:
dart run build_runner build

El paquete build_runner incluye los siguientes comandos:

build

Realiza una construcción única.

serve

Ejecuta un servidor de desarrollo. En lugar de usar directamente este comando, puedes usar webdev serve, que tiene un comportamiento por defecto conveniente.

test

Ejecuta pruebas.

watch

Inicia un servidor de construcción que vigila las ediciones en los archivos de entrada. Responde a los cambios realizando reconstrucciones incrementales.

Más información

#