A module is simply a top-level JavaScript function that is executed when Nuxt is started. Nuxt will call each module in order and wait for all modules to finish before continuing to call the Vue instance, the Vue plugins, and the global functions that are to be injected into $root and the Nuxt context. Because modules are called before them (i.e Vue instance, etc), we can use modules to override templates, configure webpack loaders, add CSS libraries, and perform other tasks that you need for your app. Besides this, modules can also be packaged into npm packages and shared with the Nuxt community. You can check out the following link for production-ready modules made by the Nuxt Community:
https://github.com/nuxt-community/awesome-nuxt#official
Let's give the Axios module a try, which is a module integrated with Axios (https://github.com/axios/axios) for Nuxt. It comes with features such as setting the base URL for the client and server sides automatically. We...