// https://nuxt.com/docs/api/configuration/nuxt-config import fs from 'fs/promises' import chalk from 'chalk'; import imagemin from 'imagemin'; import imageminPngquant from 'imagemin-pngquant'; export default defineNuxtConfig({ // hooks: { // 'nitro:build:public-assets': async (nitro) => { // console.log(`😈 custom hook imagemin in ${nitro.options.output.publicDir}`) // const output_path = nitro.options.output.publicDir // const filelist = await fs.readdir(output_path, { recursive: true }); // for (let index = 0; index < filelist.length; index++) { // const element = filelist[index]; // const elementFile = await fs.lstat(`${output_path}/${element}`) // if (element.startsWith('_nuxt')) continue // if (elementFile.isFile()) { // if (element.endsWith('.png')) { // const dest = `${output_path}/${element.split('/').slice(0, -1).join('/')}` // const res = await imagemin([`${output_path}/${element}`], { // destination: dest, // plugins: [ // imageminPngquant({ // quality: [0.6, 0.8] // }) // ] // }) // if (res.length) { // console.log(chalk.gray(` compress PNG ${output_path}/${element}`)) // } // } // } // } // } // }, app: { pageTransition: { name: 'page', mode: 'out-in' }, head: { viewport: 'width=device-width, initial-scale=1', htmlAttrs: { lang: 'ru', }, }, }, ssr: true, modules: [ '@nuxtjs/tailwindcss', "@nuxt/image", "nuxt-icon", "nuxt-svgo", '@tresjs/nuxt', 'nuxt-anchorscroll', '@nuxtjs/robots', ], runtimeConfig: { public: { apiBase: '/api', baseUrl: '', }, }, routeRules: { '/index.html': { redirect: '/' }, '/index.php': { redirect: '/' }, }, // nitro: { // prerender: { // crawlLinks: true // }, // }, vite: { assetsInclude: ['**/*.glb', '**/*.gltf'], build: { minify: 'esbuild' }, }, robots: { rules: { UserAgent: '*', Disallow: '/', } } })