Nextjs 11 新使用 import 关键字对 image 'src' 抛出错误 CompileError: mutable globals cannot be exporting

Posted

技术标签:

【中文标题】Nextjs 11 新使用 import 关键字对 image \'src\' 抛出错误 CompileError: mutable globals cannot be exporting【英文标题】:Nextjs 11 new use of import keyword for image 'src' throwing error CompileError: mutable globals cannot be exportedNextjs 11 新使用 import 关键字对 image 'src' 抛出错误 CompileError: mutable globals cannot be exporting 【发布时间】:2021-09-04 09:31:11 【问题描述】:

我最近升级到 nextjs 11 并使用了他们的新图像功能,您可以在其中导入图像并在 src 属性中使用它们,如下所示:

import mallImage from '../public/images/ads/mall.png';

然后use可以作为

<Image src=mallImage  />

它工作正常,直到它开始抛出错误

./public/images/ads/mall.png
CompileError: AsyncCompile: Wasm decoding failed: mutable globals cannot be exported @+482

我很困惑,因为我完全按照文档中的使用方式使用它 https://nextjs.org/blog/next-11#image-improvements

这个错误似乎只发生在开发服务器上

【问题讨论】:

你不需要参考公用文件夹。接下来会为你做。使用import mallImage from '../images/ads/mall.png'; 那没用,它给了Module not found: Can't resolve '../images/ads/mall.png',因为它正在尝试像正常反应一样导入图像 不确定wasm-pack,但这个东西在 create-next-app (webpack) 配置中工作得很好。 @Randall One 需要在导入时引用公用文件夹。如果他们使用字符串作为 src,则不需要它,在这种情况下,/images/ads/mall.png 就足够了,但这不适用于新的静态图像功能(自动高度/宽度扣除 & placeholder=blur 不提供 @ 987654331@). @brc-dd,我通过更改图像解决了这个问题,之前的图像是从photoshop的快速导出png导出的,然后我用tinypng.com压缩它,也许图像以某种方式重建,但现在它工作正常,因为我将其转换为 jpg 我遇到了完全相同的问题。我在构建我的应用程序时遇到了问题。我尝试了很多不同的东西,我尝试将文件名直接放在 Image 标签中,我尝试导入图像并将对象添加到 Image 标签中,我尝试了 img 标签。没有任何工作。我无法重新创建我的图像,因为它们是我的 UX 团队提供给我的 【参考方案1】:

解决方案:不要像 react 一样导入。试试这个

<Image src="/images/ads/mall.png"  layout="fill" />

<Image src="/images/ads/mall.png"  width=100 height=100 />

【讨论】:

以上是关于Nextjs 11 新使用 import 关键字对 image 'src' 抛出错误 CompileError: mutable globals cannot be exporting的主要内容,如果未能解决你的问题,请参考以下文章

ES11ES12ES13 新特性概览

解决nextjs部署到now上之后出现的“Unable to import module 'now__launcher'”错误

使用 NextJS 更改 Stripe 支付的自动填充颜色

如何在 nextjs 中使用没有 css 模块的 scss

使用 NextJS 在 getServerSideProps 中没有可用数据时显示 div?

带有 nextjs 的 material-ui 选项卡?