UNPKG

@nuxt/loading-screen

Version:

[![Github Actions CI][github-actions-src]][github-actions-href] [![Standard JS][standard-js-src]][standard-js-href] [![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![package phobia][package-ph

49 lines (38 loc) 1.05 kB
module.exports = function NuxtLoadingScreen () { if (!this.options.dev) { return } const defu = require('defu') const LoadingUI = require('./loading') const { nuxt } = this const baseURL = nuxt.options.router.base + '_loading' const options = this.options.build.loadingScreen = defu(this.options.build.loadingScreen, { baseURL, baseURLAlt: baseURL, altPort: false, image: undefined, colors: {} }) const loading = new LoadingUI(options) nuxt.options.serverMiddleware.push({ path: '/_loading', handler: (req, res) => { loading.app(req, res) } }) if (options.altPort) { nuxt.hook('listen', async (_, { url }) => { await loading.initAlt({ url }) }) } nuxt.hook('close', async () => { await loading.close() }) nuxt.hook('bundler:progress', (states) => { loading.setStates(states) }) nuxt.hook('cli:buildError', (error) => { loading.setError(error) }) nuxt.hook('server:nuxt:renderLoading', (req, res) => { loading.serveIndex(req, res) }) }