mns-mini-zabor/nuxt.config.ts

82 lines
2.2 KiB
TypeScript

// 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: '/',
}
}
})