Files
console-dev/nuxt.config.ts
T

71 lines
2.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** 应用构建入口;所有运行时业务地址来自公开配置,不绑定历史服务器目录。 */
import { applyTheme } from "./app/utils/theme-appearance.js";
export default defineNuxtConfig({
compatibilityDate: "2026-10-25",
// 页面依赖浏览器存储、DOM 及远控能力,使用客户端 SPA,而非服务端渲染页面。
ssr: false,
devtools: { enabled: false },
modules: ["@nuxt/icon"],
icon: {
// 图标只读取本地打包的 Lucide 集合,不在缺失时向公共图标 API 发请求。
provider: "server",
serverBundle: { collections: ["lucide"] },
fallbackToApi: false,
},
// 恢复的源码使用显式 import,避免自动扫描带来同名组件或隐式依赖。
components: false,
imports: { autoImport: false },
// 由响应入口统一设置浏览器信任边界;不限制现有验证码、支付和远控的脚本/连接来源。
routeRules: {
"/**": {
headers: {
"X-Content-Type-Options": "nosniff",
"Referrer-Policy": "no-referrer",
"X-Frame-Options": "SAMEORIGIN",
"Content-Security-Policy":
"frame-ancestors 'self'; object-src 'none'; base-uri 'self'",
},
},
},
css: [
// 只放全站共享样式;各业务组件显式导入自己的带作用域样式。
"~/assets/styles/entry.Cs9kvuGi.css",
"~/assets/styles/BuildUpdateNotice.CuqdqvlF.css",
"~/assets/styles/OperationToasts.DfA_b8om.css",
],
// NUXT_PUBLIC_API_BASE 只填后端 origin,/console/v1 前缀由请求层追加。
// public 会下发到浏览器,禁止在这里存放服务端密码或访问令牌。
runtimeConfig: { public: { apiBase: "" } },
app: {
head: {
htmlAttrs: { lang: "zh-CN" },
title: "破碎工坊云 - 会员中心",
script: [
{
key: "console-theme",
// 普通内联脚本在业务模块和首次绘制前恢复外观,不等待网络或组件挂载。
innerHTML: `(${applyTheme.toString()})();`,
tagPriority: "critical",
},
],
link: [
// 只预载全站共享的小资源;中文分片字体继续按实际字符加载,避免抢占首屏带宽。
{ rel: "preload", as: "image", href: "/images/brand/logo.png" },
{
rel: "preload",
as: "font",
type: "font/woff2",
crossorigin: "anonymous",
href: "/icons/primeicons.Cw7jw2u3.woff2",
},
// 字体和站点图标随 public/ 分发,离线测试和私有部署不依赖外部 CDN。
{ rel: "stylesheet", href: "/fonts/harmonyos-sans-sc/Regular.css" },
{ rel: "stylesheet", href: "/fonts/harmonyos-sans-sc/Semibold.css" },
{ rel: "stylesheet", href: "/fonts/harmonyos-sans-sc/Bold.css" },
{ rel: "icon", href: "/favicon.svg", type: "image/svg+xml" },
],
},
},
});