Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Tech : passage à Parcel v2 #777

Merged
merged 3 commits into from
May 4, 2022
Merged

Tech : passage à Parcel v2 #777

merged 3 commits into from
May 4, 2022

Commits on May 4, 2022

  1. Tech: passe à Parcel 2.5.0

    https://github.com/parcel-bundler/parcel/releases/tag/v2.5.0
    
    https://www.npmjs.com/package/parcel/v/2.5.0
    
    == Notes de migration ==
    
    - Par défaut, Parcel v2 utilise swc au lieu de Babel pour la transpilation
    
      Avantage : c’est plus rapide. Par contre, l’utilisation des tagged template litterals conduit à la génération de code qui déclenche une erreur dans terser (le minifieur) : parcel-bundler/parcel#7101
    
      On contourne le problème en écrivant différemment notre code pour échapper le nom du profil dans le HTML généré dynamiquement.
    
    - Depuis la 2.4.0, Parcel utilise @parcel/css au lieu de PostCSS (cf. https://parceljs.org/blog/v2-4-0/)
    
    - On met à jour les anciens plugins (changement d’API) :
    
      - on remplace le plugin [parcel-plugin-static-files-copy](https://www.npmjs.com/package/parcel-plugin-static-files-copy) par [parcel-reporter-static-files-copy](https://www.npmjs.com/package/parcel-reporter-static-files-copy)
    
      - on remplace [parcel-plugin-ogimage](https://www.npmjs.com/package/parcel-plugin-ogimage) par [parcel-optimizer-ogimage](https://www.npmjs.com/package/parcel-optimizer-ogimage)
    
      - on remplace [parcel-plugin-html-externals](https://www.npmjs.com/package/parcel-plugin-html-externals) par [parcel-resolver-ignore](https://www.npmjs.com/package/parcel-resolver-ignore)
    
      - on active le plugin standard `@parcel/resolver-glob` pour utiliser des imports `*` comme dans Parcel V1.
    
      - on remplace le plugin [parcel-plugin-sw-asset-urls](https://www.npmjs.com/package/parcel-plugin-sw-asset-urls) par le plugin standard `@parcel/service-worker` (ce qui évite de devoir maintenir à la main la liste de fichiers à mettre en cache)
    
    - On s’assure que les noms des bundles soient mcc.XXX.(css|js)
    
      Les règles de nommage par défaut de Parcel utilisent l’arbre d’import pour déterminer quel est le nom du fichier racine : https://github.com/parcel-bundler/parcel/blob/v2/packages/namers/default/src/DefaultNamer.js
    
      Cela donne des noms un peu arbitraires pour les bundles CSS et JS.
    
      On utilise le plugin `parcel-namer-rewrite` pour forcer un nom plus explicite : https://www.npmjs.com/package/parcel-namer-rewrite
    
    - On normalise les liens dans les fichiers sources :
    
      - lien absolu "/" pour aller vers la page d’accueil
      - lien relatif "toto.html" pour aller vers une autre page
    
      Note: des liens absolus seront bien générés par Parcel au final.
    
    - On ajoute un lien vers le fichier `browserconfig.xml`
    
    - On note que deux versions du JS sont générées :
      - une pour les navigateurs modernes capables de charger un script de type "module"
      - une option de repli pour les navigateurs plus anciens
    
      cf. https://parceljs.org/features/targets/#differential-bundling
    ronnix committed May 4, 2022
    Configuration menu
    Copy the full SHA
    b8e3e32 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a15c7c1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5ef192e View commit details
    Browse the repository at this point in the history