101 lines
2.4 KiB
TypeScript
101 lines
2.4 KiB
TypeScript
import { createRequire } from 'node:module'
|
|
import { fileURLToPath } from 'node:url'
|
|
import { resolve } from 'node:path'
|
|
import { defineNuxtConfig } from 'nuxt/config'
|
|
|
|
const srcDir = fileURLToPath(new URL('./src', import.meta.url))
|
|
const require = createRequire(import.meta.url)
|
|
/** Vite در SSR بهاشتباه browser entry را میگیرد و به window.FormData میزند */
|
|
const formDataNodeEntry = require.resolve('form-data')
|
|
|
|
export default defineNuxtConfig({
|
|
compatibilityDate: '2024-11-01',
|
|
srcDir: 'src/',
|
|
ssr: true,
|
|
|
|
app: {
|
|
baseURL: '/',
|
|
head: {
|
|
htmlAttrs: {
|
|
lang: 'fa',
|
|
dir: 'rtl',
|
|
},
|
|
meta: [
|
|
{ charset: 'utf-8' },
|
|
{ name: 'enamad', content: '44889195' },
|
|
{
|
|
name: 'viewport',
|
|
content:
|
|
'width=device-width, initial-scale=1.0, viewport-fit=cover, interactive-widget=resizes-content',
|
|
},
|
|
{ name: 'apple-mobile-web-app-capable', content: 'yes' },
|
|
{ name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
|
|
],
|
|
link: [
|
|
{ rel: 'icon', type: 'image/png', href: '/favicon.png' },
|
|
{ rel: 'shortcut icon', type: 'image/png', href: '/favicon.png' },
|
|
{ rel: 'apple-touch-icon', href: '/favicon.png' },
|
|
],
|
|
},
|
|
},
|
|
|
|
runtimeConfig: {
|
|
public: {
|
|
loginAppUrl:
|
|
process.env.NUXT_PUBLIC_LOGIN_APP_URL ||
|
|
process.env.VITE_LOGIN_APP_URL ||
|
|
'https://app.boursemes.com/home',
|
|
},
|
|
},
|
|
|
|
css: [
|
|
'@/assets/css/landing-entry.less',
|
|
'@unocss/reset/tailwind-compat.css',
|
|
],
|
|
|
|
modules: ['@pinia/nuxt', '@unocss/nuxt'],
|
|
|
|
vite: {
|
|
resolve: {
|
|
alias: {
|
|
'form-data': formDataNodeEntry,
|
|
},
|
|
},
|
|
ssr: {
|
|
external: ['form-data'],
|
|
resolve: {
|
|
conditions: ['node', 'import', 'module', 'default'],
|
|
externalConditions: ['node', 'import', 'module', 'default'],
|
|
},
|
|
},
|
|
css: {
|
|
preprocessorOptions: {
|
|
less: {
|
|
modifyVars: {
|
|
hack: `; @import (reference) "${resolve(srcDir, 'assets/css/var.less').replace(/\\/g, '/')}";`,
|
|
},
|
|
javascriptEnabled: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
typescript: {
|
|
typeCheck: false,
|
|
strict: false,
|
|
},
|
|
|
|
nitro: {
|
|
compressPublicAssets: true,
|
|
},
|
|
|
|
experimental: {
|
|
payloadExtraction: false,
|
|
},
|
|
|
|
devServer: {
|
|
host: '0.0.0.0',
|
|
port: 3200,
|
|
},
|
|
})
|