不久前,我将博客从 Hexo 迁移到了 Vuepress 并启用了 Plume 主题。内容搬迁完成后,在迁移 Google Analytics 来统计流量时遇到了问题。
之前在 Hexo 中,我使用的主题支持 Google Analytics 插件,只需要在主题配置文件中设置 Google Analytics ID 即可。
Vuepress 作为一个知名的项目自然也少不了这些插件。在官网搜索后发现果然有一个名为 @vuepress/plugin-google-analytics
的插件,它可以在 Vuepress 中插入 Google Analytics 脚本。
于是照着官方文档一步一步做了下来,结果并没有像预想中那样正常工作。由于对 Vuepress 并不熟悉,我陷入了困境。
什么是 Google Analytics?
在继续之前,先为不熟悉的读者简单介绍一下 Google Analytics。它是一款由 Google 提供的免费的网站流量分析工具。通过在网站中添加一小段 JavaScript 代码,就可以追踪访客的各种行为,例如他们从哪里来、访问了哪些页面、停留了多长时间等等。对于博主和网站运营者来说,GA 是了解读者、优化内容不可或缺的利器。(当然像我这种几乎没有流量的个人小博客,主要就是来折腾玩的)

插件的"失灵"与传统的解决之道
按照 @vuepress/plugin-google-analytics
插件的文档,我首先安装了依赖,然后在 Vuepress 的配置文件 .vuepress/config.ts
中添加了插件配置。然而,在本地启动和构建后,我发现最终生成的 HTML 文件中并没有像预期那样插入 GA 的跟踪代码。这意味着插件并没有生效。
之前到这种情况,我的第一反应是去搜索引擎上查找解决方案。我尝试了各种关键词组合,例如 "vuepress google analytics plugin not working"、"vuepress plume google analytics" 等等。虽然找到了一些相关的讨论和 GitHub Issue,但大多数都和我遇到的情况不完全一样,或者提供的解决方案并不奏效。这个过程耗费了我不少时间,却收效甚微。
换个思路:让 AI 来帮忙
就在我准备放弃,打算暂时搁置这个问题时,我才想起我这不是在用 Trae。既然如此,为啥不让 AI 来帮我分析一下呢?而且 Trae 本身就能联网搜索。
我将 Vuepress 官方文档中关于插件配置的部分,以及我的 config.ts
文件内容都发给了 Trae,并描述了我遇到的问题:插件没有按预期工作。Trae 在分析了我的配置和官方文档后,敏锐地指出了一个可能性:我使用的 Vuepress 版本(2.0.0-rc.24
)和 Google Analytics 插件版本(2.0.0-rc.112
)之间可能存在兼容性问题,导致插件无法正确执行。
紧接着,Trae 提出了一个更直接、更可靠的解决方案:手动在 head
中添加 Google Analytics 的跟踪代码 。它向我解释说,Vuepress 允许用户在配置文件中通过 head
选项向生成的 HTML 的 <head>
标签内注入任意的标签。这相当于提供了一个"后门",让我们可以在不依赖插件的情况下,手动实现同样的功能。
Trae 甚至直接给我提供了需要添加到 config.ts
中的代码片段:
typescript
export default {
// ... other configs
head: [
[
'script',
{
async: true,
src: 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXX',
},
],
[
'script',
{},
`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXX');
`,
],
],
}
我立马去 Vuepress 的官方文档查看,果然可以这么配置往 <head>
中添加代码。于是我直接让 Trae 帮我修改代码。然后,我重新运行了构建命令。这一次,当我检查构建产物时,惊喜地发现 Google Analytics 的代码已经稳稳地出现在了每一个 HTML 页面的 <head>
部分!问题迎刃而解。
收获与启发:拥抱 AI 时代的开发新范式
这次看似小小的技术"踩坑"经历,却如同一面镜子,清晰地映照出 AI 时代开发者工作范式的变迁,给了我几点启发:
-
从"大海捞针"到"精准制导":传统的解决问题模式,往往依赖于关键词技巧和海量信息的筛选能力,我们如同在信息的海洋中捞针。而以 Trae 为代表的 AI 助手,则像一个精准的制导系统。它不仅能快速联网检索信息,更能结合上下文理解我们的真实意图,直接给出高相关度的解决方案,甚至预判到我们尚未发现的兼容性问题。这种从"搜索"到"问答"的转变,极大地压缩了我们解决问题的路径。
-
重新定义"解决问题"的能力:过去,一个程序员解决问题的能力很大程度上体现在他的信息检索能力和 Debug 经验上。但在 AI 的加持下,"提出正确且高质量的问题"的能力正变得越来越重要。如何清晰地描述问题、提供充足的上下文、并对 AI 的回答进行批判性思考和验证,将成为衡量开发者能力的新标尺。我们的角色,正从一个"执行者"转变为一个与 AI 协作的"指挥者"。
-
AI 不仅是工具,更是思维的催化剂 :Trae 在这次事件中,不仅仅是给出了一个代码片段。它先是分析了问题的根源(版本兼容性),然后提出了一个更具通用性的解决方案(手动注入
head
),并解释了其原理。这个过程启发了我,让我跳出了"插件为什么不工作"的思维定势,转向了"如何不依赖插件实现目标"的更高维度思考。优秀的 AI 助手,不仅能授人以鱼,更能授人以渔,催化我们形成更灵活、更具创造性的解题思路。
总而言之,AI 编程助手并非要取代程序员,而是将我们从大量重复、繁琐的劳动中解放出来,让我们能将更多精力投入到系统设计、逻辑梳理和技术创新这些更具价值的环节。主动拥抱并善用这些强大的工具,或许正是我们每一位开发者在 AI 浪潮中乘风破浪的关键。