Django et Laravel-mix

Juste avant de passer au vrai sujet de ce billet, parlons un peu des virtualenv. Récemment, Python3.6 a été publié. Mise à jour classique du langage, mais ça m’a permis d’apprendre quelque chose.
En fait je tentais de préparer une configuration Webpack avec Helpmepiz, et en voulant réactiver le virtualenv, plus rien ne répondait. C’était lié à ma nouvelle version du langage, et c’est là que l’utilisation de freeze a pris tout son sens. Il a fallut supprimer le dossier env, et et en créer un nouveau, puis lancer pip freeze > requirements.txt.
Par contre, ça m’a surtout fait comprendre que le virtualenv n’avait rien à faire dans le dépôt. Il faut le mettre complètement ailleurs, là où j’avais pris comme reflex de le mettre au même niveau que l’appli. Il faudra donc que je déporte ça à terme, mais surtout, ne faites pas la même erreur !

Passons maintenant à Laravel-mix. En poussant la configuration de webpack, je commençais à avoir envie de pleurer. Puis Laravel-mix est arrivé. C’est un Webpack prêt à l’usage, qui colle parfaitement à ce que je veux faire. Il se colle sur n’importe quelle application, contrairement à ce que son nom laisse entendre, donc allons-y !

Installation avec Yarn

Il faut donc déjà avoir Yarn d’installé en global. Ensuite, on va installer Webpack, également en global. Une dépendance qui n’est pas encore documentée (mais qui vous évitera de chercher), est cross-env, qu’il faut aussi avoir en global :

sudo npm install -g webpack cross-env

Effectivement, je n’utilise pas Yarn pour installer en global, il y a des soucis dans les liens symboliques, donc npm est plus approprié.

Ensuite on est prêt à accueillir Mix dans l’application :

yarn add laravel-mix && cp -r node_modules/laravel-mix/setup/** ./

Ajouter les commandes npm

Pour s’éviter d’avoir à taper les longues commandes avec webpack, voici ce que vous devez ajouter au fichier packages.json :

"scripts": {
    "webpack": "cross-env NODE_ENV=development webpack --progress --hide-modules",
    "dev": "cross-env NODE_ENV=development webpack --watch --progress --hide-modules",
    "hmr": "cross-env NODE_ENV=development webpack-dev-server --inline --hot",
    "production": "cross-env NODE_ENV=production webpack --progress --hide-modules"
  }

La commande webpack vous permet de compiler vos fichiers une seule fois.
La commande dev va recompiler à chaque changement de fichier
La commande hmr vous permet d’activer le hrm (duh?)
Et la commande production va compiler, minifier, et générer les .map pour la production.

Modifier la configuration apache

On a vu dans un article précédent comment configurer un vhost apache pour Django. Mais si on livrait les assets compilés dans le repertoire /assets de l’application (c’est le comportement par défaut de Django il me semble), je préfère changer et passer ça dans /dist.
/assets contiendra tous les fichiers non compilés, donc voici ce qu’on ajoute :

Alias /static/  /chemin/vers/helpmepyz.dev/helpmepyz/dist/

La fonction mix pour Python/Django

Alors c’est ma toute première fonction python, c’est pas parfait, mais ça fait le job. Il faudra juste remplacer le retour avec un objet request, pour déterminer l’url complète.

Mais globalement, qu’est ce que fait cette fonction :

Ignorons la partie hot reload pour l’instant, mais Laravel Mix génère un fichier mix-manifest.json. Dans ce fichier, il y a les chemins vers les chunks versionnés, ce qui va vous éviter de dire « vous pouvez rafraichir la page syouplai? F5 ».

from os.path import isfile, abspath
from os import getcwd
from json import loads


def mix(path, manifest = False, should_hot_reload = False):
    if not manifest:
        manifest_path = getcwd() + '/mix-manifest.json'
        should_hot_reload = isfile(abspath('/dist/hot'))
        if not isfile(manifest_path):
            raise Exception( 'The Laravel Mix manifest file does not exist. Please run "npm run webpack" and try again.')

        manifest_file = loads(open(manifest_path).read())

    # if (not path.startswith('/')): path = f"/{path}"

    if not path in manifest_file:
        raise Exception('Unknown Laravel Mix file path: f"{path}".'
                        'Please check your requested webpack.mix.js output path, and try again.')

    return 'http://localhost:8080f"{manifest_file[path]}"' if should_hot_reload else manifest_file[path]

Donc on va bientôt être prêt coté front !

Sinon, en lisant Sam et Max, je suis tombé sur cette phrase, qui m’a permis de comprendre la différence entre les 2 termes, et de manière très simple, donc je vous la laisse :

Donc, quand vous faites import os, Python va faire une boucle for là dessus et chercher dans chaque dossier si un package (un dossier avec un fichier __init__.py) ou un module (un fichier avec l’extension .py) nommé os existe.

metrogeek

Comments 0

  1. Your comment is awaiting moderation.

    Como Obtener Un Credito Personal Como Hacer Credito Donde Puedo Pedir Un Prestamo De Dinero
    https://prestamosenestadosunidos.space/marlboro-nj/
    Creditos Con Veraz Donde Puedo Obtener Un Prestamo Personal Pedir Prestamo Rapido Donde Hacer Un Prestamo Personal Sacar Credito
    https://prestamosenestadosunidos.space/washington-township-nj/
    Dinero Prestamos Personales Solicitud De Prestamos Personales En Linea Prestamos Express Online
    https://prestamosenestadosunidos.space/enterprise-nv/
    Financieras De Creditos Rapidos Buscar Creditos Rapidos Donde Puedo Conseguir Un Prestamo Prestamos Para Devolver A Plazos

  2. Your comment is awaiting moderation.

    Creditos Urgentes Rapidos Que Tipo De Interes Tiene Un Prestamo Personal Paginas De Creditos Online
    https://prestamosenestadosunidos.space/fort-lauderdale-fl/
    Mini Prestamos Rapidos Prestamos Avance Presta Plata Prestamos Personales Online Como Pedir Un Prestamo Rapido
    https://prestamosenestadosunidos.space/victorville-ca/
    Quiero Un Prestamo Personal Rapido Creditos Por Internet Rapidos Prestamos Personales On Line Urgente Mas Prestamos
    https://prestamosenestadosunidos.space/pasadena-ca/
    Creditos De Dinero Prestamistas En Linea Consulta De Credito Personal

  3. Your comment is awaiting moderation.

    Credito De 300 Credito Requisitos Tipos Prestamos Personales Solicitud De Credito Online Mejores Creditos Rapidos Online
    https://prestamosenestadosunidos.space/sunland-park-nm/
    Prestamos Online Seguros Mi Primer Prestamo Prestamos Personales Faciles De Conseguir Prestamos Diarios
    https://prestamosenestadosunidos.space/murrieta-ca/
    Buscador Prestamos Calcular Cuota De Prestamo Personal Prestamos Popular Como Se Pide El Prestamo En Personal
    https://prestamosenestadosunidos.space/summerlin-south-nv/
    Quiero Pedir Un Prestamo Tasa Para Prestamos Personales Como Saber Si Puedo Sacar Un Credito Personal

  4. Your comment is awaiting moderation.

    Solicitar Dinero Rapido Y Facil Como Se Calcula Un Prestamo Personal Quien Hace Prestamos Personales Banco Que Dan Prestamos Rapidos Solicitar Credito Rapido
    https://creditosrapidosenusa.space/cherry-hill-nj/
    Prestamos En Linea Rapidos Creditos Personales Rapidos Presta Plata
    https://creditosrapidosenusa.space/peoria-az/
    El Credito Prestamos 24 Donde Puedo Conseguir Un Prestamo Solicitar Prestamo Rapido Solicitar Linea De Credito Online
    https://creditosrapidosenusa.space/reno-nv/
    Mini Prestamos Online Solicitar Credito Solicitar Prestamo Rapido Dinero Facil Y Rapido Donde Puedo Obtener Un Prestamo Personal

  5. Your comment is awaiting moderation.

    Pagar A Credito Que Significa Mejores Prestamos En Linea Calculadora De Credito Personal Prestamos Faciles Por Internet Calculadora De Prestamos
    https://creditosrapidosenusa.space/augusta-ga/
    Prestamos Con Dni Necesito Prestamo De Dinero Urgente Prestamos 24 Hrs Minicreditos Al Instante Prestamos Rapidos Nuevos
    https://creditosrapidosenusa.space/victorville-ca/
    Prestamos Personales Baratos Online Donde Pedir Un Prestamo Rapido Como Obtener Un Prestamo Personal
    https://creditosrapidosenusa.space/south-brunswick-nj/
    Prestar Dinero Prestamos Urgentes El Dinero Rapido

  6. Your comment is awaiting moderation.

    Informe De Credito Tipos De Prestamos Donde Consigo Un Prestamo Rapido Y Facil
    https://elprestamista.space/pueblo-co/
    Financieras Para Prestamos Personales Como Pedir Prestamo A Personal Comparador De Prestamos Personales Online Credito De 300 Euros
    https://elprestamista.space/new-brunswick-nj/
    Prestamos Personales Facil Y Rapido Prestamos Para Emprendimientos Intereses De Prestamos Personales
    https://elprestamista.space/whitney-nv/
    Prestamos Solo Dni Rapidos Calculo De Intereses Prestamo Personal Credito Nomina Creditos Rapidos 24 Horas

  7. Your comment is awaiting moderation.

    Donde Pedir Un Prestamo Personal Rapido Intereses De Prestamos Personales Prestamos De 300 Euros Paginas De Prestamos Personales
    https://creditosrapidosenusa.space/huntington-beach-ca/
    Prestamos Pequenos Y Rapidos Cuanto Es El Interes De Un Prestamo Personal En Donde Prestan Dinero Rapido Quien Presta Dinero Facil
    https://creditosrapidosenusa.space/spring-creek-nv/
    Prestamo De Dinero Urgente Mini Prestamos A Plazos Dineo Devolver Prestamo
    https://creditosrapidosenusa.space/coral-springs-fl/
    Todos Los Creditos El Prestamo Tasa De Prestamos Personales Solicitar Credito Personal Online Prestamos Popular

  8. Your comment is awaiting moderation.

    Prestamo Simple Prestamos Personales Rapidos Por Internet Donde Puedo Conseguir Un Prestamo Rapido Prestamos Bajo Interes Donde Pedir Un Credito Personal
    https://creditosrapidosenusa.space/hialeah-fl/
    Prestamos En Linea En 24 Horas Como Solicitar Un Prestamo Credito Personal Requisitos Credito Directo El Mejor Prestamo Personal
    https://creditosrapidosenusa.space/woodbridge-nj/
    Prestamos Para Emprendimientos Creditos Por Internet Rapidos Prestamos De Dinero Rapido Por Internet
    https://creditosrapidosenusa.space/marlboro-nj/
    Comparar Prestamos Personales Bancos Necesito Un Prestamo Urgente Prestamos A Devolver A Plazos Prestamos Urgentes Por Internet Necesito Un Prestamo

  9. Your comment is awaiting moderation.

    El Credito Financiero Conseguir Prestamo Personal Ejemplo De Prestamo Personal
    https://creditosrapidosenusa.space/thornton-co/
    Ayuda Prestamos Personales Donde Me Pueden Prestar Dinero Facil Y Rapido Prestamos De Dinero Rapido Y Facil Los Mejores Prestamos En Linea
    https://creditosrapidosenusa.space/miami-fl/
    Consulta De Credito Personal Oferta De Prestamo Mi Primer Prestamo Donde Pedir Un Credito Rapido Presto Dinero Rapido Particulares
    https://creditosrapidosenusa.space/dunwoody-ga/
    Un Prestamo Prestar Dinero Con Intereses Quien Presta Dinero Facil Donde Puedo Pedir Un Credito Creditos Urgentes En Linea

  10. Your comment is awaiting moderation.

    Paginas De Creditos Online A Banca Prestamos Personales Creditos Online 24 Horas
    https://prestamosurgente.space/reno-nv/
    Prestamistas De Dinero Rapido Para Pedir Un Prestamo Personal Credito A 30 Dias
    https://prestamosurgente.space/howell-nj/
    Credito Casa Quien Me Presta Dinero Urgente Prestamos De Dinero Inmediato Como Calcular El Interes De Un Prestamo Personal Los Prestamos
    https://prestamosurgente.space/brownsville-tx/
    Prestamos X Dia Prestamos En Un Dia Calculadora De Credito Personal Donde Me Prestan Dinero Rapido Mi Prestamo Personal

  11. Your comment is awaiting moderation.

    Quiero Un Prestamo Personal Tramite De Prestamos Personales Solicitud De Dinero Donde Puedo Pedir Un Credito Que Son Los Creditos
    https://creditosrapidosenusa.space/marlboro-nj/
    Quien Me Presta Dinero Urgente Bancos Para Prestamos Personales Ofertas De Prestamos Personales
    https://creditosrapidosenusa.space/killeen-tx/
    Prestar Dinero Prestamos Personales Faciles Prestamos 24 Hrs
    https://creditosrapidosenusa.space/centennial-co/
    Prestamos De Dinero Rapido Dinero Rapido Solicitar Prestamo En Linea Oferta De Prestamo Dinero Credit

Laisser un commentaire