primevue-mirror/apps/showcase/nuxt.config.js

111 lines
4.2 KiB
JavaScript

import path from 'path';
const baseUrl = '/';
const alias = {
primevue: path.resolve(__dirname, '../../packages/primevue/src'),
'@primevue/core': path.resolve(__dirname, '../../packages/core/src'),
'@primevue/themes/aura': path.resolve(__dirname, '../../packages/themes/src/presets/aura'),
'@primevue/themes/lara': path.resolve(__dirname, '../../packages/themes/src/presets/lara'),
'@primevue/themes/nora': path.resolve(__dirname, '../../packages/themes/src/presets/nora'),
'@primevue/themes/material': path.resolve(__dirname, '../../packages/themes/src/presets/material'),
'@primevue/themes': path.resolve(__dirname, '../../packages/themes/src'),
'@primevue/icons': path.resolve(__dirname, '../../packages/icons/src')
};
let PROCESS_ENV = {};
try {
PROCESS_ENV = process?.env || {};
} catch {
// NOOP
}
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
typescript: false,
modules: ['nuxt-gtag', '@primevue/nuxt-module'],
components: {
path: '~/components',
pathPrefix: false
},
vite: {
resolve: {
optimizeDeps: {
disabled: true
},
alias
}
},
nitro: {
alias
},
routeRules: {
'/accessibility': { redirect: { to: '/guides/accessibility', statusCode: 301 } },
'/installation': { redirect: { to: '/vite', statusCode: 301 } }
},
primevue:
PROCESS_ENV.DEV_ENV === 'hot'
? {
usePrimeVue: false,
autoImport: true,
loadStyles: false
}
: {
autoImport: true, // When enabled, the module automatically imports PrimeVue components and directives used throughout the application.
importTheme: { from: '@/themes/app-theme.js' }
},
app: {
baseURL: baseUrl,
head: {
htmlAttrs: {
dir: 'rtl'
},
title: 'PrimeVue - Vue UI Component Library',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ name: 'description', content: 'The ultimate collection of design-agnostic, flexible and accessible Vue UI Components.' },
{ name: 'robots', content: 'index,follow' },
{ name: 'twitter:card', content: 'summary_large_image' },
{ name: 'twitter:site', content: '@primevue' },
{ name: 'twitter:title', content: 'PrimeVue | Vue UI Component Library' },
{ name: 'twitter:description', content: 'The ultimate collection of design-agnostic, flexible and accessible Vue UI Components.' },
{ property: 'og:type', content: 'website' },
{ property: 'og:title', content: 'PrimeVue | Vue UI Component Library' },
{ property: 'og:url', content: 'https://primevue.org/' },
{ property: 'og:description', content: 'The ultimate collection of design-agnostic, flexible and accessible Vue UI Components.' },
{ property: 'og:image', content: 'https://www.primefaces.org/static/social/primevue-preview.jpg' },
{ property: 'og:ttl', content: '604800' }
],
link: [
{ rel: 'icon', href: baseUrl + 'favicon.ico' },
{ rel: 'stylesheet', href: 'https://rsms.me/inter/inter.css' },
{ rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Roboto:400|Roboto:500|Roboto:600|Roboto:700', fetchpriority: 'low' }
],
script: [
{
src: baseUrl + 'scripts/prism.js',
'data-manual': true
}
]
}
},
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {}
}
},
runtimeConfig: {
public: {
contextPath: baseUrl,
DEV_ENV: PROCESS_ENV.DEV_ENV
}
},
gtag: {
id: 'G-48TTQ6G6KV'
},
css: ['primeicons/primeicons.css', '@/assets/styles/flags.css', '@docsearch/css/dist/style.css', '@/assets/styles/tailwind/main.css', '@/assets/styles/layout/layout.scss']
});