模型配置路径使用 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 无法自动处理变更的情况下,用户需要手动替换所有字符串,以指向新的配置路径。