Just like CSS, you should also minimize JavaScript files. Just like we used Clean-CSS to minify CSS, you can use uglify to do the same for your JavaScript. Instead of inlining the script, I like to keep it in individual files.
In the past, I would have also bundled multiple script files together. HTTP/2 utilizes request multiplexing to optimize content delivery. By keeping each script in individual files, you can take advantage of long term caching and make small changes without requiring a complete download.
In addition to minimizing the scripts, I am also going to show you how to create unique file names using an MD5 hash on the content. This will allow you to apply a very long caching time without worrying ...