
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "添加 scan 命令"v8.13.02026/6/11
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本If you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
扫描网站
scan 命令用于获取公共 URL,测量总页面大小,并审计页面的 i18n 和 SEO 健康状况。它会生成一份评分报告(0–100),涵盖 HTML 属性、规范链接、hreflang 标签、robots.txt、sitemap.xml、本地化内部链接以及 JavaScript 包中的语言包体积权重。
无需额外依赖。安装 puppeteer 后,扫描可以捕获延迟加载的 JavaScript 分包,以进行更精确的包体分析;否则,它将退化为检查 HTML 中声明的同步加载脚本。
用法
复制代码到剪贴板
npx intlayer scan <url>示例
复制代码到剪贴板
npx intlayer scan https://example.com示例输出:
复制代码到剪贴板
🔍 Scanned https://example.com (basic mode)Score: 90/100Page size: 10.60 MB (HTML 42.31 KB)Locales: en, fr, es, de, …Checks: ✓ html lang attribute ✓ html dir attribute ✓ canonical link ✓ hreflang tags ✓ x-default hreflang ✓ localized internal links ⚠ all internal links localized ✓ current locale detected ✓ robots.txt present ✓ robots.txt keeps locale paths crawlable ✓ sitemap.xml present ✓ sitemap lists every locale ✓ sitemap has alternate links ✓ sitemap has x-defaultBundle locale weight: Translations shipped: 120.50 KB Unused (other locales): 45.20 KB (37%)选项
<url> (必填)
要扫描的完整 URL(例如 https://example.com)。
--no-deep
禁用基于渲染的深度扫描。
默认情况下,该命令会尝试使用 puppeteer 在无头浏览器中渲染页面,捕获延迟加载的 JavaScript 分包,并测量实际传输大小。如果未安装 puppeteer,该命令将自动退回到基本模式。
传入 --no-deep 以强制使用基本模式,即使 puppeteer 可用。
示例:npx intlayer scan https://example.com --no-deep
--json
将完整的扫描结果输出为 JSON 对象,而不是格式化的报告。适用于程序消费或 CI 流水线。
示例:npx intlayer scan https://example.com --json
标准配置选项
--base-dir— 用于定位intlayer.config.*文件的基目录。-e, --env— 目标环境(例如development,production)。--env-file— 自定义.env文件的路径。--no-cache— 禁用配置缓存。--verbose— 启用详细日志记录(CLI 模式下默认开启)。--prefix— 自定义日志前缀。
检查内容
在弹窗中打开表格以清晰地查看所有数据
| 检查项 | 描述 | 评分权重 |
|---|---|---|
html lang | <html lang="…"> 属性存在 | 9 |
html dir | <html dir="…"> 属性存在 | 3 |
canonical | <link rel="canonical"> 存在 | 10 |
hreflang | <link rel="alternate" hreflang="…"> 标签存在 | 9 |
x-default hreflang | 存在 x-default hreflang 备用链接 | 7 |
localized links | 至少一个内部链接包含语言段 | 5 |
all links localized | 每个内部链接都包含语言段 | 5 |
current locale | 能够检测到页面语言 | 3 |
robots.txt present | /robots.txt 返回 200 响应 | 10 |
robots.txt locale paths | robots.txt 中未阻止任何语言路径 | 10 |
sitemap.xml present | /sitemap.xml 返回 200 响应 | 10 |
sitemap locale coverage | 每个检测到的语言都出现在站点地图中 | 10 |
sitemap alternates | 站点地图包含 hreflang 备用链接 | 5 |
sitemap x-default | 站点地图包含 x-default hreflang | 5 |
unused bundle content | JS 包不包含过多的未使用语言数据 | 9 |
最终得分是所有通过的检查项的加权总和,以百分比(0-100)表示。
以编程方式使用扫描功能
scan 函数也从 @intlayer/cli 中导出,因此可以从您自己的脚本中调用:
复制代码到剪贴板
import { scan } from "@intlayer/cli";await scan("https://example.com", { deep: false, json: false,});对于更低级别的访问,来自 @intlayer/chokidar/scan 的 scanWebsite 会返回一个结构化的 ScanResult 对象:
复制代码到剪贴板
import { scanWebsite } from "@intlayer/chokidar/scan";const result = await scanWebsite("https://example.com", { deep: false });console.log(result.score, result.totalPageSize, result.events);