[strapi]Strapi 构建因更新 V4.8.1 的依赖关系而失败

2024-05-13 565 views
6
错误报告 所需的系统信息
  • Node.js 版本:v16.19.1
  • NPM版本:8.19.3
  • 斯特拉皮版本:4.8.1
  • 数据库:MySQL
  • 操作系统:windows/cent os 7
  • 你的项目是Javascript还是Typescript:Javascript
描述错误

更新到 v4.8.1 后尝试进行 npm 构建时,我在 Webpack 构建依赖项步骤中收到以下错误,该错误涉及未从依赖项导出的包。

重现行为的步骤
  1. 更新 package.json "@strapi/plugin-i18n": "4.8.1", "@strapi/plugin-users-permissions": "4.8.1", "@strapi/strapi": "4.8.1",
  2. npm 安装
  3. npm 运行构建
  4. 查看错误
预期行为

构建成功。

截图

Webpack █████████████████████████ 构建 (64%) 1/1 条目 9486/9622 依赖项 2214/2773 模块 264 个活动 esbuild-loader › .缓存/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js

ModuleNotFoundError:找不到模块:错误:包路径 ./addon/display/placeholder 未从包 serverpath/node_modules/codemirror 导出

代码片段

如果适用,请添加代码示例以帮助解释您的问题。

额外的背景信息

在此处添加有关该问题的任何其他上下文。

回答

7

面临同样的问题

3

我将执行以下步骤(这包括更新 Strapi deps):

  • 删除build, .cache&node_modules文件夹
  • 将您的 Strapi deps 更改为您想要升级到的版本,例如4.8.1
  • 跑步npm install
  • 跑步npm build

我希望这能起作用。如果没有,那么您应该考虑再次执行所有步骤,但也要删除您的锁定文件,例如yarn.lock.

1

这里同样的问题。删除所有文件夹+锁定文件,结果相同。

8

这里同样的问题。删除所有文件夹+锁定文件,结果相同。

你可以运行以下命令吗?npm ls codemirror5 npm ls codemirror。我期待这样的事情:

strapi@ /Users/josh/code/strapi
└─┬ @strapi/admin@4.8.1 -> ./packages/core/admin
  └── codemirror5@npm:codemirror@5.65.11
strapi@ /Users/josh/code/strapi
└─┬ @strapi/admin@4.8.1 -> ./packages/core/admin
  └─┬ @strapi/design-system@1.6.5
    └─┬ @uiw/react-codemirror@4.19.9
      └── codemirror@6.0.1
3
└─┬ @strapi/strapi@4.8.1
  └─┬ @strapi/admin@4.8.1
    └── codemirror5@npm:codemirror@5.65.12
└─┬ @strapi/plugin-i18n@4.8.1
  └─┬ @strapi/design-system@1.6.5
    └─┬ @uiw/react-codemirror@4.19.9
      └── codemirror@6.0.1
6

我只能假设某些东西正在为你们所有人缓存,上面的那些 deps 是预期的,但是您的管理 src 文件正在尝试查看导入位置,codemirror但是这不再存在,因为4.8.0+它们都应该从codemirror5.如果任何人都可以提供该问题的复制存储库,那将是有益的。

5

我只能假设某些东西正在为你们所有人缓存,上面的那些 deps 是预期的,但是您的管理 src 文件正在尝试查看导入位置,codemirror但是这不再存在,因为4.8.0+它们都应该从codemirror5.如果任何人都可以提供该问题的复制存储库,那将是有益的。

我将所有内容移至新的存储库并删除了构建、.cache、npm_modules 和 package-lock.json。能够重现它。

这是一个复制存储库 - https://github.com/hypnotoad08/Strapi-test

9

谢谢你@hypnotoad08,我会尽快看一下!

3

嘿@hypnotoad08,问题出在插件上strapi-plugin-comments,在这种情况下他们在插件中使用了依赖项codemirror,但他们没有在他们的插件中声明它,package.json所以插件正在使用我们的版本,该版本v6有重大更改。所以实际上,插件作者需要仔细检查他们使用的所有 deps 是否在 package.json 中声明,以避免将来发生这种情况。因为它在市场上,所以我会看看是否可以安排他们也通过这种方式到达。

在我看来,这可能是你们任何人的情况。最简单的方法是找出(或者至少我是如何做到的)一一删除插件,直到问题停止,以隔离插件并检查其来源是否缺少依赖项,特别是codemirror.

3

嘿@hypnotoad08,问题出在插件上strapi-plugin-comments,在这种情况下他们在插件中使用了依赖项codemirror,但他们没有在他们的插件中声明它,package.json所以插件正在使用我们的版本,该版本v6有重大更改。所以实际上,插件作者需要仔细检查他们使用的所有 deps 是否在 package.json 中声明,以避免将来发生这种情况。因为它在市场上,所以我会看看是否可以安排他们也通过这种方式到达。

在我看来,这可能是你们任何人的情况。最简单的方法是找出(或者至少我是如何做到的)一一删除插件,直到问题停止,以隔离插件并检查其来源是否缺少依赖项,特别是codemirror.

感谢您对此进行研究,我应该考虑检查插件。

6

问题已在strapi-plugin-comments@2.2.9releaseEditor.js )中修复,并由我们使用的(Strapi WYSIWYG)副本引起codemirror+确实缺乏严格声明的依赖关系。

顺便提一句。将整个可配置的所见即所得编辑器暴露给设计系统就好了,您认为 Strapi 怎么样?

5

问题已在strapi-plugin-comments@2.2.9releaseEditor.js )中修复,并由我们使用的(Strapi WYSIWYG)副本引起codemirror+确实缺乏严格声明的依赖关系。

顺便提一句。将整个可配置的所见即所得编辑器暴露给设计系统就好了,您认为 Strapi 怎么样?

我们公开了大部分其他输入,因此这并非不合理,您可以打开一个新问题并标记我吗?在确认之前我可以得到一些内部反馈。