vue3 vite title 页面标题设置

效果图:

1. 安装 vite-plugin-html 插件

npm install vite-plugin-html -D

2. 修改 vite.config.js

import {defineConfig, loadEnv} from 'vite'
import { createHtmlPlugin } from "vite-plugin-html"
import {resolve} from 'path'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig(({mode, command, ssrBuild}) => {
        const root = process.cwd();
        const env = loadEnv(mode, root);
        return {
            plugins: [
                vue(),
                //修改index.html标题
                createHtmlPlugin({
                    inject: {
                        data: {
                            title: env.VITE_APP_API_TITLE,
                        },
                    },
                }),
            ],
            resolve: {//路径别名
                alias: {
                    '@': resolve(__dirname, './src')
                }
            },
            server: {
                proxy: {
                    [env.VITE_APP_BASE_API]: {
                        // target: 'http://localhost:3001',
                        changeOrigin: true,
                        rewrite: path => path.replace(env.VITE_APP_BASE_API, '')
                    }
                },
                hmr: {
                    overlay: false, // 禁用开发服务器错误的屏蔽
                },
            },
            build: {
                minify: "terser", // 混淆器,terser 构建后文件体积更小,'terser' | 'esbuild'
                rollupOptions: {
                    output: {
                        // 最小化拆分包
                        manualChunks(id) {
                            if (id.includes("node_modules")) {
                                return id
                                    .toString()
                                    .split("node_modules/")[1]
                                    .split("/")[0]
                                    .toString();
                            }
                        },
                        chunkFileNames: "js/[name].[hash].js", // 用于命名代码拆分时创建的共享块的输出命名,[name]表示文件名,[hash]表示该文件内容hash值
                    },
                },
                terserOptions: {
                    // 生产环境移除console打印
                    compress: {
                        drop_console: true,
                        drop_debugger: true,
                    },
                    // 去掉注释内容
                    output: {
                        comments: true,
                    },
                }
            }
        }
    }
)

index.html 的内容

<title><%= title %></title>
上述语法使用 vite.config.js中的变量

`TypeError: Cannot read properties of undefined (reading 'VITE_APP_TITLE')` 这种错误通常发生在JavaScript环境中,特别是在使用像Vue.js、React等前端框架时。这类错误表明代码尝试访问一个未定义(`undefined`)的对象属性。 具体到 `VITE_APP_TITLE` 的情况: `VITE_APP_TITLE` 是构建工具(例如 Vite 或 Rollup)提供的环境变量之一,用于存储项目配置信息,如应用程序标题。当你尝试读取这个变量作为对象属性时(如:`document.title = process.env.VITE_APP_TITLE;`),并且在某些情况下,如果 Vite 或其他构建系统还没有完成配置过程,则 `process.env.VITE_APP_TITLE` 可能尚未被正确设置或初始化,因此会返回 `undefined`。这导致了无法安全地读取其属性引发的错误。 解决此问题的一般步骤包括: 1. **确保环境变量已被正确设置**:在运行脚本之前,请确认 Vite 或类似构建工具已经成功设置了环境变量,并且它们能够从命令行参数或其他方法传递给脚本。 2. **检查构建阶段是否完整**:确保应用程序在部署前完成了所有必要的构建和预处理步骤。有时候,错误可能仅在特定环境下才会出现,比如只在生产环境或开发服务器上。 3. **使用默认值**:在访问环境变量时可以添加默认值,防止因变量未定义而抛出异常,如:`const appName = process.env.VITE_APP_TITLE || "Default App Name";` 4. **依赖注入**:在框架中使用依赖注入模式,将配置信息通过构造函数传入组件,避免直接在全局作用域中访问可能导致问题的变量。 5. **日志检查**:增加日志输出,帮助识别何时和为什么 `VITE_APP_TITLE` 变量被设置为 `undefined`。这有助于调试并确定问题的根源。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大可-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值