Skip to content

已解决-20250331-运行时报错-Ignored-build-scripts

(已解决)20250331-运行时报错-Ignored-build-scripts

2025年4月2日

升级为新版本解决。

环境

bash
Theme By teek@2023.3.31-1.0.0-alpha.3

报错现象

bash
26752@One MINGW64 /d/vitepress-theme-teek-online-install-one-private (master)
$ td2
+ cd /d/vitepress-theme-teek-online-install-one-private
+ pnpm i
Lockfile is up to date, resolution step is skipped
Already up to date

 Warning ───────────────────────────────────────────────────────────────────────────────────╮

   Ignored build scripts: @parcel/watcher, esbuild, vue-demi.
   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.

╰────────────────────────────────────────────────────────────────────────────────────────────╯

Done in 683ms using pnpm v10.5.0
+ pnpm docs:dev

> @ docs:dev D:\vitepress-theme-teek-online-install-one-private
> vitepress dev docs

从你的来看,VitePress 项目依赖已经安装完毕pnpm i),并且 pnpm docs:dev` 正常启动开发服务器。但你的问题可能仍然与 死链(dead links)构建警告 相关。以下是分步解决方案:


📌 关键问题排查

如果你在 pm docs:build 时遇到 dead links 错误,但在开发模式 (pnpm docs:dev) 没有报错,可能是因为:

  • 开发模式默认不严格检查死链,但构建模式会强制检查
  • 你的项目包含 本地测试链接(如 http://localhost:3000/index错误的相对路径(如 ./index

🔹解决方案**(接上一条回答):

  • 修复死链(推荐):
    • 确保 http://localhost 替换为线上版本(如 https://yourdomain.com/)。
    • 检查 ./index 是否有正确的路径(替换为 /index../index.md)。
  • 临时绕过检查(适用于测试):
    • docs/.vitepress/config.ts 添加:
      ts
      export default defineConfig({
        ignoreDeadLinks: true,  // 忽略所有死链 
      });

2.pnpm i 警告(@parcel/watcher, esbuild, vue-demi`)

╭ Warning ──────────────────────────────────────────────────────────╮
│                                                                   │
│   Ignored build scripts: @parcel/watcher, es, vue-demi.      │
│   Run "pnpm approve-builds" to pick which dependencies should     │
│   be allowed to run scripts.                                      │
│                                                                   │
╰───────────────────────────────────────────────────────────────────╯

🔹 解析

  • 这是 PNPM 的安全,防止恶意 npm 包的 postinstall 脚本执行。
  • 依赖(esbuild, vue-demi)通常 不需要 postinstall 也能正常运行,一般可以忽略。

🔹 可选的修复方法

  • 如果 VitePress 运行正常无需处理(警告不影响功能)。
  • 如果想消除警告
    • 运行 pnpm-builds,然后允许这些包的脚本:
      bash
      pnpm approve-builds @parcel/watcher esbuild vue-demi
    • 或在 .npmrc 文件加入(⚠️ 降低安全性):
      ini
      ignore-scripts=false

下一步如何处理呢

  • 选择了 @parcel/watcher esbuild--也会报错的

.npmrc 文件加入--方法测试失败

2025年3月31日


3. 检查 Node.js 版本兼容性

你的日志显示 PNPM v10.5.0,建议:

  • Node.js 18.x / 20.x(LTS)(官方推荐)
  • 如果遇到构建问题,可以尝试:
    bash
    corepack enable  # 确保 PNPM 版本正确
    pnpm -v          # 检查是否 >= 8.6.0
    node -v          # 检查 Node 是否 18+

✅ 完整修复流程

  1. 修复死链(或配置 ignoreDeadLinks
  2. 可选处理 PNPM 警告(非必需)
  3. 重新运行
    bash
    pnpm i            # 确保依赖最新
    pnpm docs:dev     # 开发模式测试
    pnpm docs:build   # 正式构建

🚀 额外优化建议

  • 使用 markdown-link-check 提前检测死链
    bash
    npx markdown-link-check docs/**/*.md
  • 检查 config.ts 是否配置了 base(如果项目部署在子目录):
    ts
    export default defineConfig({
      base: '/your-subpath/', // 如 GitHub Pages 的 /repo-name/
    });

📜 最终检查清单

问题状态修复方式
死链替换或 ignoreDeadLinks
pnpm i 警告⚠️可忽略或 approve-builds
Node.js 版本18.x / 20.x LTS

如果仍有问题,请提供:

  1. node -vpnpm -v
  2. 完整的死链错误(可运行 pnpm docs:build 抓取)
  3. 你的 config.ts 配置(隐藏敏感信息)

我会进一步帮你调试!💡