If doing this in vanilla JS (versus a framework like Svelte, Vue, React, etc), then you should probably mimic what those frameworks do and have a "main" entrypoint file (main.js, app.js, etc), and just "import" all your other JS files into it.
Ashton Fei uses Vue in
this example, (
code) but the concept is the same. It is basically a one-way process: 1) develop in VSCode, 2) Compile for GAS usage, 3) Push to GAS using Clasp. He has a
nice utility script that renames everything appropriately.
I was thinking of writing a utility that would properly setup the local workspace for working with Clasp Clones/Pulls, but haven't gotten around to it. Once I push to GAS, I usually fine-tune everything there in the IDE.