102 lines
1.9 KiB
TypeScript
102 lines
1.9 KiB
TypeScript
import { version } from "./package.json";
|
|
|
|
const siteUrl = process.env.NUXT_SITE_URL;
|
|
if (!siteUrl) {
|
|
throw new Error(
|
|
`NUXT_SITE_URL is not defined. Make sure to set it in your build environment variables.`,
|
|
);
|
|
}
|
|
|
|
const wpUrl = process.env.NUXT_WP_URL;
|
|
if (!wpUrl) {
|
|
throw new Error(
|
|
`NUXT_WP_URL is not defined. Make sure to set it in your build environment variables.`,
|
|
);
|
|
}
|
|
const wpDomain = new URL(wpUrl).hostname;
|
|
|
|
const enableCloudflareImages = Boolean(process.env.ENABLE_CLOUDFLARE_IMAGES);
|
|
|
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
export default defineNuxtConfig({
|
|
modules: [
|
|
"@lewebsimple/nuxt-graphql",
|
|
"@nuxt/image",
|
|
"@nuxt/ui",
|
|
"@nuxtjs/device",
|
|
"@nuxtjs/seo",
|
|
"nuxt-auth-utils",
|
|
"nuxt-svgo",
|
|
],
|
|
|
|
components: {
|
|
dirs: [{ path: "~/components", pathPrefix: false }],
|
|
},
|
|
|
|
devtools: { enabled: true },
|
|
|
|
css: ["~/assets/css/_main.css"],
|
|
|
|
site: {
|
|
url: siteUrl,
|
|
name: "WP Headless",
|
|
defaultLocale: "fr",
|
|
},
|
|
|
|
ui: {
|
|
colorMode: false,
|
|
},
|
|
|
|
runtimeConfig: {
|
|
wpUrl,
|
|
},
|
|
|
|
compatibilityDate: "2026-01-01",
|
|
|
|
nitro: {
|
|
preset: "cloudflare_module",
|
|
cloudflare: {
|
|
wrangler: {
|
|
vars: {
|
|
NODE_ENV: "staging",
|
|
NUXT_SITE_URL: siteUrl,
|
|
NUXT_WP_URL: wpUrl,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
graphql: {
|
|
client: {
|
|
cache: {
|
|
keyVersion: version,
|
|
},
|
|
},
|
|
server: {
|
|
context: ["server/graphql/context"],
|
|
schema: {
|
|
wp: { type: "remote", endpoint: `${wpUrl}/graphql`, hooks: ["server/graphql/wp-hooks"] },
|
|
},
|
|
},
|
|
},
|
|
|
|
image: {
|
|
provider: enableCloudflareImages ? "cloudflare" : "none",
|
|
cloudflare: { baseURL: `${siteUrl}/` },
|
|
domains: [wpDomain],
|
|
format: ["avif", "webp"],
|
|
},
|
|
|
|
robots: {
|
|
sitemap: `${wpUrl}/sitemap_index.xml`,
|
|
},
|
|
|
|
sitemap: false,
|
|
|
|
svgo: {
|
|
autoImportPath: "~/assets/svg/",
|
|
componentPrefix: "Svg",
|
|
defaultImport: "component",
|
|
},
|
|
});
|