模型配置路径使用 uid 而非点号表示法

页面摘要: 在 Strapi 5 中,配置路径使用 :: 表示法而非点号表示法来访问模型,将 plugin.upload.somesetting 改为 plugin::upload.somesetting。

在 Strapi 5 中,要获取配置值,你需要使用 config.get('plugin::upload.myconfigval') 或 config.get('api::myapi.myconfigval')

本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。

代码迁移工具: use-uid-for-config-namespace

破坏性变更说明

在 Strapi v4 中

模型使用 . 表示法添加到配置中,如下所示:

strapi.config.get('plugin.upload.somesetting');
if ( strapi.config.has('plugin.upload.somesetting') ) {
  strapi.config.set('plugin.upload.somesetting', false);
}

在 Strapi 5 中

模型使用 :: 替代 . 表示法添加到配置中,如下所示:

strapi.config.get('plugin::upload.somesetting');
if ( strapi.config.has('plugin::upload.somesetting') ) {
  strapi.config.set('plugin::upload.somesetting', false);
}

迁移

本节汇总了关于该破坏性变更的有用说明和操作步骤。

说明

  • 如果某个 API 拥有配置,它也应使用 strapi.config.get(’api::myapi.myconfigval’) 访问。

  • plugin 命名空间暂时仍受支持并会发出弃用警告。这意味着引用 plugin.upload.somesetting 会在服务器日志中发出警告,并检查 plugin::upload.somesetting。

  • 已创建一个 codemod 来协助重构用户代码中的字符串,将 plugin. 或 api. 替换为 plugin:: 和 api::。

手动操作步骤

在大多数情况下,codemod 会自动处理这一变更。

在 codemod 无法自动处理变更的情况下,用户需要手动替换所有字符串,以指向新的配置路径。