Manage JavaScript Libraries function

The project function Manage JavaScript Libraries needs a bit of tweaking. It leaves stub lines (spaces) behind when one removes configuration, and multiplies these stub lines exponentially when one adds a configuration.


As an example, here is the HTML file for a new project after adding the ThreeJs (3D) configuration:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta content="width=device-width, initial-scale=1" name="viewport"/>
    <meta $(ThemeColor)/>
    <noscript>Your browser does not support JavaScript!</noscript>
    <link href="data:;base64,=" rel="icon"/>
    <meta $(Manifest)/>
    <title>TMS Web Project</title>
    <script src="https://download.tmssoftware.com/tmsweb/threejs/three.min.js" type="text/javascript"></script>
    <script src="https://download.tmssoftware.com/tmsweb/threejs/OrbitControls.js" type="text/javascript"></script>
    <script src="https://download.tmssoftware.com/tmsweb/threejs/TMS.THREE.Utils.js" type="text/javascript"></script>
    <script src="https://download.tmssoftware.com/tmsweb/threejs/THREE.MeshLine.js" type="text/javascript"></script>
    <script src="$(ProjectName).js" type="text/javascript"></script>
    <style>
    </style>
  </head>
  <body>
<meta $(BodyParameters)/>
  </body>
  <script type="text/javascript">rtl.run();</script>
</html>


All good so far. Now, let's take away the ThreeJS (3D) configuration. Note the four stub lines that remains where the four JS files were loaded:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta content="width=device-width, initial-scale=1" name="viewport"/>
    <meta $(ThemeColor)/>
    <noscript>Your browser does not support JavaScript!</noscript>
    <link href="data:;base64,=" rel="icon"/>
    <meta $(Manifest)/>
    <title>TMS Web Project</title>
    
    
    
    
    <script src="$(ProjectName).js" type="text/javascript"></script>
    <style>
    </style>
  </head>
  <body>
<meta $(BodyParameters)/>
  </body>
  <script type="text/javascript">rtl.run();</script>
</html>


And now we add back the same configuration (or any other). We end up with the same four stub lines inserted before each one of the configuration items:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta content="width=device-width, initial-scale=1" name="viewport"/>
    <meta $(ThemeColor)/>
    <noscript>Your browser does not support JavaScript!</noscript>
    <link href="data:;base64,=" rel="icon"/>
    <meta $(Manifest)/>
    <title>TMS Web Project</title>
    
    
    
    
    <script src="https://download.tmssoftware.com/tmsweb/threejs/three.min.js" type="text/javascript"></script>
    
    
    
    
    <script src="https://download.tmssoftware.com/tmsweb/threejs/OrbitControls.js" type="text/javascript"></script>
    
    
    
    
    <script src="https://download.tmssoftware.com/tmsweb/threejs/TMS.THREE.Utils.js" type="text/javascript"></script>
    
    
    
    
    <script src="https://download.tmssoftware.com/tmsweb/threejs/THREE.MeshLine.js" type="text/javascript"></script>
    
    
    
    
    <script src="$(ProjectName).js" type="text/javascript"></script>
    <style>
    </style>
  </head>
  <body>
<meta $(BodyParameters)/>
  </body>
  <script type="text/javascript">rtl.run();</script>
</html>


I was experimenting with a custom configuration last week. While tweaking my configuration, I was adding it and removing from the project it many times. Imagine my shock when the HTML file grew with tens of thousands of stub lines! I wish my investments could grow this fast :)


We will investigate. We use an external lib for HTML parsing & manipulation, so we'll see if this is something we can have under control or needs to be handled (fixed) by the company providing the lib.

Thank you Bruno.