@adobe/aem-import-helper

中文文档
1.6.2发布于 2026/10/29Apache-2.0ES Module近 30 天下载 4579

用于将站点导入 AEM 的帮助工具 .

中文使用文档
文档目录13 节
  1. 特征
  2. 安装
  3. 进口的前提条件
  4. 使用量
  5. 基于文档的导入
  6. AEM 写入( 十字路口) 导入
  7. 向 AEM 导入内容
  8. 正在使用 AEM 认证
  9. 上传内容到 AEM
  10. 将内容导入到 DA
  11. 正在使用 DA 认证
  12. 上传内容到作者总线
  13. 捆绑多导入脚本

AEM 导入助手

帮助将您的网站导入AEM的同伴.

特征

安装

最好是作为非依赖性,但也可以在全球使用:

npm install @adobe/aem-import-helper --save-dev

进口的前提条件

设置您的环境变量( 无论是在 shell 配置文件中还是在 .env 文件名 :

export AEM_IMPORT_API_KEY=your-import-api-key

将 npm 脚本项添加到您的边际传送项目 package.json数字 :

"import": "aem-import-helper import"

使用量

进口有两种类型:基于文档的AEM授权(xwalk). 关于每种类型的更多信息,请参见以下各节.

两种导入类型都需要包含所有URL列表的文件来导入,每行一个. 创建一个文件( 取名为 “ urls. txt ”) , 并将 URL 添加到此文件 .

基于文档的导入

默认导入基于 doc, 仅提供urls.txt文件和导入.js文件 .

通过下列命令执行导入:

npm run import -- --urls ./urls.txt --importjs tools/importer/import.js

这个 import.js 您提供的文件将自动被捆绑并作为一个 Service API 发送给导入,因此支持引用其它本地脚本(如变压器) 。 我们为什么要捆绑进口文件? 见下文关于 捆绑多个导入脚本 更多细节.

完成后,将打印出一个预先签名的URL从S3下载导入结果(作为.zip存档)到将包含所生成文件的控制台.

共享点上传

任择 m365 立方厘米 可以安装和配置,将导入结果上传到SharePoint. 你会需要你的 tenantId 编辑 clientId 页:1 微软 Entra 应用程序 (在您的SharePoint上) 设置 CLI :

m365 setup
m365 login

从SharePoint复制一个链接到您想要上传到的目录 。 这可以从SharePoint Web UI,通过"Copy链接"按钮实现. 您的新链接形式如下: https://example.sharepoint.com/:f:/r/sites/example/Shared%20Documents/destination-directory

已登录到 sharePoint 的 m365 CLI,将SharePoint链接作为参数传递给aem-import-helper:

npm run import -- --urls urls.txt --sharepointurl https://example.sharepoint.com/:f:/r/sites/example/Shared%20Documents/destination-directory

导入工作完成后,从S3中下载出导入结果,并上传到指定的SharePoint目录.

AEM 写入( 十字路口) 导入

要进行跨行导入, 您需要提供引用的附加参数 。 模型、过滤器和定义文件 所需经费。 您还必须指定导入 type 作为 xwalk 和提供 siteName 财务报告和审定财务报表 assetFolder。 。 。 .

npm run import -- \
  --urls urls.txt \
  --importjs tools/importer/import.js \
  --options '{     
    "type": "xwalk", 
    "data": { 
      "siteName": "xwalk", 
      "assetFolder": "xwalk" 
    }  
  }' \
  --models ./component-models.json \
  --filters ./component-filters.json \
  --definitions ./component-definition.json

完成后,将打印出一个预先签名的URL从S3下载导入结果(作为.zip存档)到将包含所生成文件的控制台.

向 AEM 导入内容

将以下 npm 脚本条目添加到您的边框交付项目 package.json数字 :

"aem-upload": "aem-import-helper aem upload"

aem-upload:将内容包和相关资产上传到AEM.

正在使用 AEM 认证

为了认证AEM, 建议您获取您的AEM环境的开发标志 。 为了做到这一点, 通过 Cloud 管理器访问您 AEM 作者环境中的开发者控制台。 关于访问的细节 开发者控制台,参见 AEM 作为云服务文档 财务报告和审定财务报表 开发者流程 学习如何生成 Access Token .

一次进入开发者控制台 :

  1. 点击集成
  2. 点击本地令牌
  3. 点击获取本地开发键

注:开发标志只有效24小时.

您可以在本地机器上的文件里存储此令牌, 或者通过令牌作为 cli 参数 . 如果您选择在文件中存储符号,则创建一个文件,并简单地将符号粘入到文件中并保存.

--token </path/to/token.txt> OR <token>

上传内容到 AEM

运行以下命令将内容包(JCR页面)和相关资产上传到您的 AEM 作者 :

npm run aem-upload -- \
  --token token.txt \
  --zip /path/to/zip.zip \
  --asset-mapping /path/to/asset-mapping.json \
  --target https://author-p1234-e1234.adobeaemcloud.com

要求 :

  • 符号: 包含由 AEM 作者环境生成的符号的文件的绝对路径,或符号值.
  • 拉链: 包含JCR页面的内容包ZIP文件的绝对路径,由导入工具生成.
  • 目标:目标AEM作者环境URL.
  • 资产测绘: 如果 --skip-assets 未提供或设定为真实,资产映射文件必须是绝对路径 到资产映射文件( e)asset-mapping.json),包含资产urls及其相应的JCR路径的映射.

可选 :

  • 产出 [默认='aem-assets']: 下载资产将存储的输出文件夹的绝对路径 .
  • 保留 [default=false]:执行后将所下载的资产保存在输出文件夹中. 没有它,文件夹下 资产下载写入的输出文件夹(每个顶级的 DAM 文件夹,例如 。). <output>/xwalk)和 直接下载的资产 /content/dam 一旦安装了内容包,则删除。 如果输出 文件夹不存在,将全部删除。 如果有些资产上传失败, 内容包仍被安装 , 下载后的资产被保存起来,这样上传就可以重新测试,命令退出则处于非零状态.
  • 跳动资产 [default=false]:跳过上传资产到AEM. .
  • 资产测绘: 只有在 --skip- assets 属实时才有可选性 .
  • 图像到 png [默认=真实]: 真实时,在上传前将已下载的图像资产转换为PNG(JPEG,PNG,GIF,ICO,SVG,MP4除外).
  • 当地资产: 本地资产文件夹的路径。 提供后,资产通过完整的DAM路径在当地解决,然后回到远程下载中处理任何缺失的文件. 文件夹结构必须映射 DAM 路径( 例如 ), <local-assets>/content/dam/site/image.jpg) (中文(简体) ).

命令执行后,内容包和相关资产会被上传到您的 AEM 作者环境. 内容包被安装,资产被上传到DAM.

将内容导入到 DA

将以下 npm 脚本条目添加到您的边框交付项目 package.json数字 :

"da-upload": "aem-import-helper da upload"

da-upload: 上传内容包和相关资产到DA.

正在使用 DA 认证

与 DA 认证, 建议您获取一个 IMS 访问令牌 。 见 IMS API 参考文献 学习如何生成 Access Token .

您可以在本地机器上的文件里存储此令牌, 或者通过令牌作为 cli 参数 。 如果您选择在文件中存储符号,则创建一个文件,并简单地将符号粘入到文件中并保存.

--token </path/to/token.txt> OR <token>

上传内容到作者总线

运行以下命令将内容( HTML 页面) 和相关资产上传到您的 DA env :

npm run da-upload -- \
  --token token.txt \
  --org myDaOrg\
  --site myDaSite\
  --asset-list /path/to/asset-list.json \
  --da-folder /path/to/da/folder \
  --output /path/to/download/folder

要求 :

  • 奥尔格: 您 DA 项目的组织名称 。 这是您 DA URL 路径的第一部分( 例如, 从 https://da.live/#/geometrixx/outdoors,该矿石将是 geometrixx) (中文(简体) ).
  • 站点:您组织内的网站名称。 这是您 DA URL 路径的第二部分( 例如, 从 https://da.live/#/geometrixx/outdoors收回会是 outdoors) (中文(简体) ).
  • da-文件夹绝对路径 da 包含 HTML 页面的文件夹,由导入者生成.
  • 资产清单: 资产列表文件的绝对路径( Y)asset-list.json),包含资产urls列表,以及站点来源信息.

资产列表.json 格式 :

{
  "assets": [
    "https://example.com/image1.jpg",
    "https://example.com/image2.png",
    "https://example.com/document.pdf"
  ],
  "siteOrigin": "https://example.com"
}

说明:图像和非图像资产处理方式不同. 图像存储在页面特定的阴影(.dot)文件夹中,而非图像介质(PDFs,docs)则存储在 shared-media 每页父目录下的文件夹.

可选 :

  • 符号: 包含您 DA 环境的 IMS 令牌的文件的绝对路径, 或令牌值 .
  • 产出 [默认='da-content']: 将存储 DA 内容( 页面、 资产等) 的输出文件夹的绝对路径 .
  • 保留 [default=false]:在上传后保留所下载的资产并在当地更新HTML,而不是清理.
  • 图像到 png [默认=真实]: 真实时,在上传前将已下载的图像资产转换为PNG(JPEG,PNG,GIF,ICO,SVG,MP4除外).
  • 当地资产: 本地资产文件夹的绝对路径。 该工具一旦提供,将首先试图从本地文件夹复制资产 。 如果在本地找不到资产,则会回到下载 siteOrigin。当:
    • HTML 页面有本地( 相对) 资产引用
    • 当地已有资产
    • 您想要避免重新下载已有的资产

虚假时保留原始图像格式并用原始扩展名更新引用. 只有在您知道您的图像被 DA 支持时才会使用此选项 .

使用当地资产:

使用时 --local-assets 带有本地文件夹路径的旗帜 :

npm run da-upload -- \
  --org myDaOrg \
  --site myDaSite \
  --asset-list /path/to/asset-list.json \
  --da-folder /path/to/da/folder \
  --local-assets /path/to/local/assets/folder

该工具将:

  1. 试图先使用本地文件夹中的资产
  2. 如果本地找不到资产, 则返回原址下载
  3. 上传所有已解析的资产到 DA
  4. 照常更新 HTML 引用
  5. 上传更新的 HTML 页面

 asset-list.json 在这种情况下,应提及资产 相对于 --local-assets 文件夹数字 :

{
  "assets": [
    "./hero/banner.jpg",
    "./team/john-smith.png",
    "/documents/brochure.pdf"
  ],
  "siteOrigin": "http://adobe.com"
}

示例本地资产文件夹结构 :

/path/to/local/assets/          <- This is your --local-assets folder
├── hero/
│   └── banner.jpg
├── team/
│   └── john-smith.png
└── documents/
    └── brochure.pdf

命令执行后,HTML页面和相关资产被上传到Author Bus.

资产参考战略

该工具处理图像和非图像资产的方式不同,以优化DA/Edge交付服务:

图像 (JPG、PNG、GIF等):

  • 存储在每页相邻的阴影文件夹中
  • 通过 https://content.da.live/... 路径.
  • 示例: 页 次 intro.html • 图像参考 https://content.da.live/aemysites/mySite/about-me/.intro/photo.jpg

非图像媒体 (PDF,其他媒体等):

  • 存放于a shared-media 页面父目录下的文件夹
  • 通过边缘交付预览 URL 引用
  • 示例: PDF 存储于 about-me/shared-media/resume.pdf - 称为 https://main--mySite--aemysites.aem.page/about-me/shared-media/resume.pdf 内部 intro.html。 。 。 .

上传性能 : 该工具通过平行处理每个页面内的资产来优化上传性能(最多50个同时上传),同时尊重CDN同时请求的限制.

Page 1 → Download Assets (parallel) → Upload Assets (max 50 parallel) → Upload HTML → 
Page 2 → Download Assets (parallel) → Upload Assets (max 50 parallel) → Upload HTML → 
Page 3 → ...

捆绑多导入脚本

通过创建您导入脚本的捆绑版本,它使它与导入服务兼容,因为所有的脚本都需要在一个js文件中.

将 npm 脚本项添加到您的边际交付项目 package.json数字 :

"bundle": "aem-import-helper bundle"

运行脚本 :

npm run bundle -- --importjs tools/importer/import.js

版本与发布记录

@adobe/aem-import-helper 共发布 37 个版本,首次发布于 2025/03/12;过去 12 个月发布了 14 个版本。

版本发布日期距今
1.6.2latest2026/10/299 天前
1.6.12026/10/2217 天前
1.6.02026/05/076 个月前
1.5.22026/04/246 个月前
1.5.12026/03/068 个月前
1.5.02026/03/048 个月前

关于 @adobe/aem-import-helper 的常见问题

@adobe/aem-import-helper 是什么?

用于将站点导入 AEM 的帮助工具 .

如何安装 @adobe/aem-import-helper?

在项目目录运行 npm install @adobe/aem-import-helper,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 aem-import-helper,可以用 npx aem-import-helper 直接运行。

@adobe/aem-import-helper 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/adobe__aem-import-helper 是否存在。

@adobe/aem-import-helper 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adobe/aem-import-helper 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.17.0 <25.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adobe/aem-import-helper 可以商用吗?

@adobe/aem-import-helper 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adobe/aem-import-helper 的下载量有多少?

根据 npm 官方下载统计,@adobe/aem-import-helper 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,579 次,日均约 153 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adobe/aem-import-helper 还在维护吗?

最新版本 1.6.2 发布于 2026/10/29(9 天前);至今共发布 37 个版本,其中过去 12 个月发布了 14 个;首次发布于 2025/03/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。