Modifier le fichier

Migration d'une extension utilisant WRO

Initialisation

Créer un fichier bundle.json dans src/main/resources si des assests doivent être compilés en bundle.

Exemple avec l'extension agenda

{
  "name": "@ksup/extensions-agenda",
  "version": "7.0.0-0",
  "description": "Plugin permettant de présenter des événements sous forme calendaire (jour, semaine, mois).",
  "repository": {
    "type": "git",
    "url": "ssh://git@git.kosmos.fr/extension/agenda.git"
  },
  "devDependencies": {
    "husky": "^3.1.0",
    "node-cli-ksup": "^1.0.1"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commit-msg -E HUSKY_GIT_PARAMS"
    }
  },
  "keywords": [],
  "author": "Kosmos",
  "license": "Apache-2.0"
}

Il faut supprimer les scripts en référence à sass:watch et le hook husky post-merge si présents.

Exemple d'éléments à supprimer :

{
  "scripts": {
    "scss": "mvn sass:update-stylesheets",
    "watch": "mvn sass:watch"
  },
  "husky": {
    "hooks": {
      "post-merge": "update-style"
    }
  }
}

Conf wro -> conf front-build

  • si le projet a une conf wro, il faut la transcrire vers la conf front-build.
  • si des scripts font référence à des libraires (jQuery notamment) il faut les déclarer en externals
  • Si le groupe contient des fichiers de traduction
    • Créer un fichier par langue avec comme suffixe la langue en question : frontoffice-i18n.js devient frontoffice-i18n_en.js et frontoffice-i18n_fr_FR.js.
    • Traduire chacune des valeurs présentes dans ces fichiers (avec les valeurs des fichiers *.properties de Spring)
    • Ajouter une section lang avec les différentes langues traduites et référencer les fichiers comme dans cet exemple : scripts/collaboratif_i18n_${lang}.js
  • si des fichiers sont référencés dans la webapp, il faut ajouter le chemin relatif à la racine du module :
    • /resources/styles/no-theme/verifications.css => styles/no-theme/verifications.css

bundle.json

Exemple de fichier

{
  "externals": {
    "jQuery": "/adminsite/scripts/libs/jquery-1.11.0.js"
  },
  "styles": {
    "styles": {
      "files": [
        "src/main/webapp/resources/styles/sass/extension-agenda.scss"
      ]
    }
  },
  "scripts": {
    "scriptsBo_fr_FR": {
      "files": [
        "src/main/webapp/resources/scripts/saisie.js"
      ],
      "externals": {
        "jQuery": "jQuery"
      }
    },
    "scriptsBo_en": {
      "files": [
        "src/main/webapp/resources/scripts/saisie.js"
      ]
    },
    "scriptsFo_fr_FR": {
      "files": [
        "src/main/webapp/resources/scripts/saisie_front.js",
        "src/main/webapp/resources/scripts/saisie.js"
      ]
    }
  }
}

Pour plus d'information sur le fichier bundle.json