You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js项目引入mui-tel-input后构建报错:import语句无法在模块外使用

解决Next.js 14.0.4中mui-tel-input构建时的SyntaxError: Cannot use import statement outside a module错误

问题原因

你遇到的错误是因为Next.js在服务端收集页面数据时,将mui-tel-input的ES模块文件当作CommonJS模块处理,导致无法识别import语句。你之前配置的jest.transformIgnorePatterns仅针对测试环境,对生产构建流程无效;而package.json中的"type": "module"也无法覆盖Next.js自身的模块处理逻辑。

解决方案

1. 配置Next.js转译指定依赖

在项目根目录的next.config.js中添加transpilePackages选项,让Next.js在构建时转译mui-tel-input包:

/** @type {import('next').NextConfig} */
const nextConfig = {
  // 保留你已有的其他配置项
  transpilePackages: ['mui-tel-input'],
}

module.exports = nextConfig

2. 清除缓存并重新构建

执行以下命令清除旧的构建缓存和依赖缓存,确保配置生效:

rm -rf .next node_modules
npm install
npm run build

(Windows系统执行以下命令)

rd /s /q .next node_modules
npm install
npm run build

补充说明

  • transpilePackages是Next.js 12+引入的选项,用于指定需要转译的第三方依赖包,解决ES模块在服务端渲染时的兼容性问题。
  • 若你使用自定义Babel配置,可能需要额外在babel.config.js中添加对mui-tel-input的转译规则,但Next.js 14默认使用SWC编译器,上述transpilePackages配置即可满足需求。

内容的提问来源于stack exchange,提问作者marlboroone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:59:52