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

启动项目时reactstrap导入报错:无法在模块外使用import语句

Reactstrap导入报错:Cannot use import statement outside a module

错误控制台信息

/node_modules/reactstrap/lib/index.js:1
import _Container from './Container';
^^^^^^

SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:73:18)
at wrapSafe (node:internal/modules/cjs/loader:1176:20)
at Module._compile (node:internal/modules/cjs/loader:1218:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Module.require (node:internal/modules/cjs/loader:1141:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object.reactstrap (/home/rafael/Documentos/dev/academy/.next/server/pages/_app.js:715:18)
at __webpack_require__ (/home/rafael/Documentos/dev/academy/.next/server/webpack-runtime.js:33:42)

Node.js v18.15.0
error Command failed with exit code 1.
info Visit yarnpkg.com/en/docs/cli/run for documentation about this command.

Reactstrap的lib/index.js代码

import _Container from './Container';
export { _Container as Container };
import _Row from './Row';
export { _Row as Row };
import _Col from './Col';
export { _Col as Col };
import _Navbar from './Navbar';
export { _Navbar as Navbar };
import _NavbarBrand from './NavbarBrand';
export { _NavbarBrand as NavbarBrand };
import _NavbarText from './NavbarText';
export { _NavbarText as NavbarText };
import _NavbarToggler from './NavbarToggler';
export { _NavbarToggler as NavbarToggler };
import _Nav from './Nav';
export { _Nav as Nav };
import _NavItem from './NavItem';
export { _NavItem as NavItem };
import _NavLink from './NavLink';
export { _NavLink as NavLink };

已尝试操作

  • 重新安装reactstrap,问题未解决

解决方案

方法1:配置Next.js转译reactstrap

Next.js默认不会转译node_modules里的ES模块,而reactstrap的lib目录输出的是未转译的ES代码,导致服务端渲染时出现CommonJS环境无法识别import的错误。修改next.config.js,将reactstrap加入transpilePackages:

/** @type {import('next').NextConfig} */
const nextConfig = {
  transpilePackages: ['reactstrap'],
}

module.exports = nextConfig

修改后重启开发服务器即可。

方法2:切换reactstrap的导入路径

尝试直接导入reactstrap的ES模块入口,替换原来的导入语句:

// 替换原来的 import { Container, Row } from 'reactstrap'
import { Container, Row } from 'reactstrap/dist/reactstrap.esm'

方法3:检查版本兼容性并更新

确保reactstrap版本与你的Next.js版本兼容,执行以下命令更新到最新稳定版:

yarn add reactstrap@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:52:50