Remember that the default setup in Laravel Mix is only a basic starting point. You are expected to change this to suit your project.
I imagined the process like I minify js files for each page and the output will be like 'public/js/homepage/' , 'public/js/adminpage/'
In most cases this is inefficient, because a lot of code is reused across different pages. It would be unusual for each page to have completely unique javascript.
On the other hand, it can be just as bad to throw everything into app.js. For example, let's say you have a website with a CMS for admins. You would not want to combine the CMS javascript (only needed by admins) with the public website javascript.
Generally the best approach is to combine your code into modules that can be reused across different pages. For some projects, this might just be one app.js module. For other projects, you might need more.
Depending on how often your javascript changes, you might want to separate your own code from any libraries (e.g. jQuery, Vue). Doing so means more HTTP requests, but better cache invalidation. This is increasingly recommended as HTTP2 becomes more widely used, because HTTP2 greatly reduces the cost of HTTP requests.