Files
wp-headless/wp-content/themes/moonshine/nuxt.config.ts
Pascal Martineau 2b2a1c1ad6
Some checks failed
Deployment / wordpress (push) Successful in 6s
Deployment / nuxt (push) Has been cancelled
feat: Replace eslint => oxlint + oxfmt
2026-02-01 21:53:40 -05:00

104 lines
2.0 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: {
deployConfig: true,
wrangler: {
name: "wp-headless",
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",
},
});