Many projects are built on top of existing libraries, such as Bootstrap or Material UI which offer distribution via a CDN. However, serving the files from the CDN is not usually the best option - it would require a less strict Content Security Policy and no longer benefits from a shared cache. Hence it's better to serve the files directly from your own server in the same manner you distribute your other static assets.
However, ease of deployment is a big concern, since nearly every web project is a good target for continuous integration and continuous delivery (CI/CD). Hence one might be tempted to actually store these external files in their own repository. This is definitely simple from a CI/CD perspective, but makes versioning a pain and leads to spuriously large commits and repositories.
                To avoid this issue, Vanilla Plus JS can be configured to have source code files
                downloaded if they do not exist. After downloading they will go through
                standard processing – which will also make them CSP-friendly, even if they
                otherwise might not be. For example, the inline SVGs in many minified CSS files will
                be outlined for you. The following is an example of how to configure
                vanillaplusjs.json to download (or update) bootstrap
                if it's not available (or is out of date). Note that the parts of the
                configuration not related to external files are not shown.
            
{
    "external_files": {
        "src/public/css/lib/bootstrap.min.css": {
            "url": "https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css",
            "integrity": "sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor"
        },
        "src/public/js/lib/bootstrap.min.js": {
            "url": "https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js",
            "integrity": "sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2"
        }
    }
}
            
                It's recommended you rebuild after changing external files, even if
                just by closing and restarting the
                vanillaplusjs dev --watch command.
                For performance, these files are not typically rechecked by the dev server
                except on first launch.