{"id":37201,"date":"2018-04-05T01:03:42","date_gmt":"2018-04-04T23:03:42","guid":{"rendered":"https:\/\/www.exoplatform.com\/blog\/?p=15541"},"modified":"2023-07-12T12:28:25","modified_gmt":"2023-07-12T10:28:25","slug":"comment-desactiver-la-minification-des-modules-javascript-dans-exo-platform-5-0","status":"publish","type":"post","link":"https:\/\/www.exoplatform.com\/blog\/fr\/comment-desactiver-la-minification-des-modules-javascript-dans-exo-platform-5-0\/","title":{"rendered":"Comment d\u00e9sactiver la minification des modules Javascript dans eXo Platform 5.0 ?"},"content":{"rendered":"<p>Gr\u00e2ce au support int\u00e9gr\u00e9 des <strong>modules Javascript eXo Platform<\/strong> permet d\u2019int\u00e9grer facilement n\u2019importe quel <strong>Javascript<\/strong>, que ce soit un d\u00e9veloppement personnalis\u00e9 ou une biblioth\u00e8que tierce.<\/p>\n<p>Le <strong>Javascript<\/strong> doit \u00eatre d\u00e9clar\u00e9 dans le fichier WEB-INF\/gatein-resources.xml de votre extension:<\/p>\n<pre class=\"lang:js decode:true \">&lt;module&gt;\n    &lt;name&gt;myscript&lt;\/name&gt;\n    &lt;script&gt;\n        &lt;path&gt;\/javascript\/myscript.js&lt;\/path&gt;\n    &lt;\/script&gt;\n&lt;\/module&gt;<\/pre>\n<p>Et peut ensuite \u00eatre inject\u00e9 dans n\u2019importe quel page, portlet ou autre <strong>Javascript<\/strong>:<\/p>\n<pre class=\"lang:js decode:true \">(function(myscript) {\n    myscript.doWhateverYouWant();\n    ...\n})(myscript);<\/pre>\n<p>Les fichiers <strong>Javascript<\/strong> d\u00e9clar\u00e9s ainsi sont automatiquement minifi\u00e9s pour r\u00e9duire leur taille et ainsi r\u00e9duire le volume des ressources t\u00e9l\u00e9charg\u00e9es dans les pages web. C\u2019est une bonne pratique du d\u00e9veloppement web mais cela peut \u00eatre probl\u00e9matique dans le cas o\u00f9 le <strong>Javascript<\/strong> n\u2019est pas compatible avec le minifier utilis\u00e9 dans <strong>eXo Platform<\/strong> (<a href=\"https:\/\/developers.google.com\/closure\/compiler\/\" target=\"_blank\" rel=\"noopener\">Google Closure Compiler<\/a>). Ce cas <a href=\"https:\/\/www.exoplatform.com\/blog\/fr\/getting-started-with-reactjs-and-exo-platform-portlet-development\/\">a par exemple \u00e9t\u00e9 rencontr\u00e9 avec React.js (chapitre \u201cIncompatibility with the GateIn minifier\u201d)<\/a>.<br \/>\nDans <a href=\"https:\/\/www.exoplatform.com\/blog\/fr\/exo-platform-5-0-est-la-ouvrons-la-conversation\/\">eXo Platform 5.0<\/a> nous avons ajout\u00e9 une option dans la <strong>configuration des modules Javascript<\/strong> pour d\u00e9sactiver cette minification : <i>minify<\/i>. La valeur par d\u00e9faut est positionn\u00e9 \u00e0 <i>true<\/i> (donc la minification est activ\u00e9e par d\u00e9faut) pour garder la compatibilit\u00e9 descendante.<\/p>\n<pre class=\"lang:js decode:true \">&lt;module&gt;\n    &lt;name&gt;myscript&lt;\/name&gt;\n    &lt;script&gt;\n        &lt;minify&gt;false&lt;\/minify&gt;\n        &lt;path&gt;\/javascript\/myscript.js&lt;\/path&gt;\n    &lt;\/script&gt;\n&lt;\/module&gt;<\/pre>\n<p>Quand l\u2019option <i>minify<\/i> est positionn\u00e9e \u00e0 false, le Javascript est inject\u00e9 tel quel, sans modification. Cela permet d\u2019embarquer dans l\u2019application votre script <strong>d\u00e9j\u00e0 minifi\u00e9<\/strong>, avec les fichiers source map, en utilisant votre tool favori (webpack, \u2026).<br \/>\nCette nouvelle option permettra d\u2019int\u00e9grer plus facilement les <strong>biblioth\u00e8ques Javascript<\/strong> et donc d\u2019<strong>am\u00e9liorer l\u2019exp\u00e9rience d\u00e9veloppeur <\/strong>!<\/p>\n<p><strong><a title=\"transformer votre entreprise!\" href=\"https:\/\/www.exoplatform.com\/fr\/\" target=\"_blank\" rel=\"noopener\">D\u00e9couvrez comment eXo Platform peut vous aider \u00e0 transformer votre entreprise!<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"Gr\u00e2ce au support int\u00e9gr\u00e9 des modules Javascript eXo Platform permet d\u2019int\u00e9grer facilement n\u2019importe quel Javascript, que ce soit un d\u00e9veloppement personnalis\u00e9 ou une biblioth\u00e8que tierce. Le Javascript doit \u00eatre d\u00e9clar\u00e9 dans le fichier WEB-INF\/gatein-resources.xml de votre extension: &lt;module&gt; &lt;name&gt;myscript&lt;\/name&gt; &lt;script&gt; &lt;path&gt;\/javascript\/myscript.js&lt;\/path&gt; &lt;\/script&gt; &lt;\/module&gt; Et peut ensuite \u00eatre inject\u00e9 dans n\u2019importe quel page, portlet ou autre [&hellip;]","protected":false},"author":64,"featured_media":15542,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":[],"categories":[411],"tags":[1197,1144,913],"lang":"fr","translations":{"fr":37201},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37201"}],"collection":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/comments?post=37201"}],"version-history":[{"count":0,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37201\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media?parent=37201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/categories?post=37201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/tags?post=37201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}