WebStorm 2021.1 Help

共享索引

减少索引时间的一种可能方法是使用共享索引。与本地构建的常规索引不同,共享索引只生成一次,然后在需要时在另一台计算机上重复使用。

WebStorm 可以连接到专用资源为您的项目代码下载和构建共享索引。每当 WebStorm 需要重新索引您的应用程序时,它将使用可用的共享索引并为项目的其余部分构建本地索引。通常,这比从头开始为整个应用程序构建本地索引要快。

确保插件已安装

为了能够使用共享项目索引,必须在设置中启用共享项目索引捆绑插件:

  1. Settings/Preferences对话框 ( Ctrl+Alt+S) 中,选择Plugins

  2. 切换到已安装选项卡,键入Shared Project Indexes,并确保选中它旁边的复选框。

    否则,请选中复选框以启用插件。

  3. 应用更改并关闭对话框。如果出现提示,请重新启动 IDE。

当你启动一个项目时,WebStorm 同时处理本地索引和共享索引。这可能会增加计算机上的 CPU 使用率。如果您想避免这种情况,请在设置/首选项 |中启用等待共享索引选项。工具 | 共享索引

共享项目索引

为所有项目源、包和 SDK 构建共享项目索引。您可以在一台计算机上生成它们,然后在另一台计算机上应用。这是共享索引相对于普通索引的主要优势。

对于大型项目,使用共享索引是合理的,因为索引可能会花费大量时间,从而给相关团队带来不便。对于较小的项目,我们推荐其他减少索引时间的方法

在你开始之前

  • 为确保索引兼容性,请在源计算机和目标计算机上使用相同的 IDE 版本。

  • 您可以在源计算机和目标计算机上使用不同的操作系统。

从命令行共享项目索引

为了共享项目索引,请安装命令行工具准备 IDE。通过这样做,您可以确保没有缓存或其他内部文件干扰您将从项目中导出的信息。

导出索引和相关元数据后,将它们上传到文件存储。然后,您团队的其他成员可以将他们的 IDE 配置为自动连接到该存储并在需要时下载索引。

准备文件存储

从命令行共享索引要求您有一个文件存储来保存导出的项目索引。

  • 确保您已准备好文件存储,并且您的团队的所有成员都可以访问此存储。

安装cdn-layout-tool

为了能够导出和共享项目索引,请安装cdn-layout-tool - 一个用于处理共享项目索引的 JetBrains 工具:

  1. 从Space 存储库下载该工具的最新版本。

  2. 下载.zip文件后,将其内容解压缩到有意义的位置。

    .zip文件的内容中,有一个bin目录。在那里,您会找到一个特定于操作系统的启动脚本,稍后您将需要它来生成元数据

准备 IDE 以共享项目索引

  1. 创建以下目录或从现有目录中删除内容:

    • <temp>/ide-system

    • <temp>/ide-config

    • <temp>/ide-log

    请注意,在不同的操作系统中,临时目录具有不同的位置

  2. <IDE home>/bin/idea.properties文件复制到<temp>目录。有关idea.properties的更多信息,请参阅通用属性

  3. <temp>中将idea.properties重命名为ide.properties

  4. 在<temp>/ide.properties文件中更改以下属性:

    • idea.system.path=<temp>/ide-system

    • idea.config.path=<temp>/ide-config

    • idea.log.path=<temp>/ide-log

    如果文件中没有这些属性,请在最后添加它们。

  5. 设置临时环境变量以指定自定义 IDE 属性文件。为此,请运行以下命令:

    设置 WEBSTORM_PROPERTIES=<temp>\ide.properties
    导出 WEBSTORM_PROPERTIES=<temp>/ide.properties

导出项目索引

  1. 确保<temp>/generate-output目录为空。如果没有这样的目录,请不要创建它,因为这将在导出期间自动完成。

  2. 使用以下命令行运行 IDE 以将项目索引导出到<temp>/generate-output

    <IDE 命令行启动器> dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project -name> --commit=<Git 头>

    您可以在bin下的安装目录中找到运行 WebStorm 的可执行脚本。要将此可执行脚本用作命令行启动器,请按照命令行界面中的说明将其添加到您的PATH系统

    句法
    webstorm.bat 转储共享索引项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project-name> - -commit=<Git 头>
    选项

    --output=<temp>/generate-output

    <temp>文件夹中生成的共享索引的输出位置。

    --tmp=<temp>/temp

    用于 IDE 内部需求的临时目录。

    --project-dir=<path>

    您要为其导出索引的项目的路径。

    --project-id=<id>

    项目的名称。

    --commit=<vcs revision>

    VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。

    这是在文件存储中布置多个 VCS 修订的共享索引所必需的。

    此标识符是可选的。如果没有指定,它将被设置为-.

    --compression=<compression type>

    压缩共享索引。可能的选项:xzgzipplain

    默认情况下,WebStorm 不提供命令行启动器。有关为 WebStorm 创建启动器脚本的信息,请参阅命令行界面

    句法
    webstorm dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project-name> --commit =<Git 头>
    选项

    --output=<temp>/generate-output

    <temp>文件夹中生成的共享索引的输出位置。

    --tmp=<temp>/temp

    用于 IDE 内部需求的临时目录。

    --project-dir=<path>

    您要为其导出索引的项目的路径。

    --project-id=<id>

    项目的名称。

    --commit=<vcs revision>

    VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。

    这是在文件存储中布置多个 VCS 修订的共享索引所必需的。

    此标识符是可选的。如果没有指定,它将被设置为-.

    --compression=<compression type>

    压缩共享索引。可能的选项:xzgzipplain

    您可以在bin下的安装目录中找到运行 WebStorm 的可执行脚本。要将此可执行脚本用作命令行启动器,请按照命令行界面中的说明将其添加到您的PATH系统

    句法
    webstorm.sh dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<project> --project-id=<project-name> - -commit=<Git 头>
    选项

    --output=<temp>/generate-output

    <temp>文件夹中生成的共享索引的输出位置。

    --tmp=<temp>/temp

    用于 IDE 内部需求的临时目录。

    --project-dir=<path>

    您要为其导出索引的项目的路径。

    --project-id=<id>

    项目的名称。

    --commit=<vcs revision>

    VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。

    这是在文件存储中布置多个 VCS 修订的共享索引所必需的。

    此标识符是可选的。如果没有指定,它将被设置为-.

    --compression=<compression type>

    压缩共享索引。可能的选项:xzgzipplain

    导出可能需要一些时间。该过程完成后,将以下文件放置到<temp>/generate-output

    • 共享索引项目-<名称>-<哈希>.ijx.xz

    • 共享索引项目-<名称>-<哈希>.metadata.json

    • 共享索引项目-<名称>-<哈希>.sha256

将生成的文件复制到新文件夹

  1. 创建一个新目录<temp>/indexes并在那里下载远程文件存储的所有内容。

    您可以在具有<temp>/generate-output子目录的目录中创建新目录。这可以是任何目录,例如~/indexes/project/<project name>/<VCS hash>/share

  2. 将生成的文件(.ijx.xz.metadata.json.sha256)从<temp>/generate-output复制到<temp>/indexes的子目录。

    这可以是任何文件夹,例如<temp>/indexes/project/<project name>/<VCS hash>/<indexes>

生成元数据

  • 生成 IDE 用于查找和下载共享索引的辅助文件。为此,请使用以下命令行运行cdn-layout-tool 。

    <cdn-layout-tool> --indexes-dir=<dir> --url=<文件存储根URL>
    选项

    <cdn-layout-tool>

    cdn-layout-tool 启动脚本的路径位于工具目录的bin中。

    --indexes-dir=<dir>

    包含文件存储中所有可用文件的目录,以及位于该目录下合适位置的新生成的共享索引。

    该工具将生成丢失的文件并在必要时替换现有文件。工具运行完成后,必须将该目录下的所有内容上传到文件存储中。这将设置存储的新状态。

    --url=<file storage root URL>

    文件存储根目录的基本 URL。cdn-layout-tool将替换所有相应.json索引列表中的下载 URL。

    例子
    /Users/User/Desktop/cdn-layout-tool-0.7.52/bin/cdn-layout-tool --indexes-dir=/var/folders/dr/xxx_x00x0x0_x0xx000xx000000xx/T/indexes --url=https:// my-file-storage.com/intellij-indexes

将索引文件上传到文件存储

  • 将<temp>/indexes中的所有文件按原样上传到文件存储。

    如果存储中已经有上传的索引文件,请更新它们。

从文件存储下载索引

项目索引上传到文件存储后,可以下载并应用到另一台计算机上。

  1. 在项目目录中,新建文件intellij.yaml并添加以下代码:

    sharedIndex: 项目: - url: <feed URL>

    <feed URL>替换为您的文件存储的 URL,格式如下:<file storage root URL>/project/<project-id>

  2. 设置/首选项对话框 ( Ctrl+Alt+S) 中,选择工具 | 共享索引

  3. 共享项目索引区域中,选择您希望从存储中下载共享索引的方式。

    选择自动下载以允许 WebStorm 在需要时静默下载 JDK 索引,或者如果您希望手动确认每次下载,请选择下载前询问。

    配置下载共享索引的选项
  4. 应用更改并关闭对话框。

项目索引将被下载到IDE系统目录下的index/shared_indexes中。

删除下载的共享索引

如果您不再需要项目索引(例如,如果项目不再处于开发阶段),您可以将它们全部删除。在这种情况下,IDE 将删除项目和 JDK 的常规索引和所有下载的共享索引。

  1. 从主菜单中,选择文件 | 使缓存无效

  2. 在打开的对话框中,选择清除下载的共享索引,然后单击无效并重新启动

最后修改:2021 年 12 月 14 日