En flutter web, existe un equivalente para reactjs package.json "prebuild"

CorePress2024-01-25  10

Tenemos un único paquete creado para diferentes sitios, que necesita que se ejecuten algunos pasos previos a la compilación antes de los pasos de compilación reales.

En Flutter Android, estos pasos se ejecutan en "preBuild.dependsOn" (en android/app/build.gradle)

Editar (información adicional):

MyFlutterMob/android/app/build.gradle

Se ejecutan los siguientes pasos previos a la compilación:

  def option = System.getenv('APK_FOR')

  setConfig()
  {
         if(option == "DEMO"){
             copy{
                 from "../../DemoAppAsset/AppLogo.png"
                 into "../../assets/images" 
             }
         }
         else if(option == "PROD"){
             copy{
                 from "../../ProdAppAsset/AppLogo.png"
                 into "../../assets/images" 
             }
         }
  }

  preBuild.dependsOn setConfig

Es posible lo mismo en la compilación web de Flutter (no se puede encontrar el script Gradle para el mismo)



------------------------------------

Si estás usando VSCode, creo que puedes configurar una compilación previa en launch.json, como se explica aquí

Básicamente puedes configurarlotu .vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
        }
    ]
}

luego, debes crear un archivo task.json en la misma carpeta y agregar un script que hará lo que quieras (por ejemplo, un script npm)

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "copyClientConfiguration",
            "problemMatcher": []
        }
    ]
}

y por último puedes agregar esta tarea como preLaunchTask en launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
            "preLaunchTask": "npm: copyClientConfiguration"
        }
    ]
}

3

Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página enlazada cambia. - De la reseña

&norteguión; Lin Du

1 de julio de 2021 a las 2:49

gracias @slideshowp2, actualicé la respuesta

- Guilherme Gabanelli

1 de julio de 2021 a las 3:48

Esto no funcionará para crear un paquete de producción. Además, no está claro cómo pasar el parámetro para seleccionar una configuración particular (PROD1/PROD2/UAT/...)

Gururaja Hegde

8 de julio de 2021 a las 13:44



------------------------------------

Escribió un script que toma el nombre del entorno (PROD1/PROD2/UAT/...) como entrada y copia las "imágenes requeridas en una etiqueta blanca" /"archivos de lista de colores de temas"/"configuraciones de lista de cadenas" en las carpetas respectivas antes de ejecutar "flutter build web". Aunque restringe todas las versiones desde Linux/mantiene un archivo bat equivalente para Windows, en términos generales funciona.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare