使用iron-session遇Module not found错误:./next/dist未从包导出
iron-session 模块导入错误解决
问题重现
原代码导入语句:
import { withIronSessionSsr } from 'iron-session/next/dist'; // ... export const getServerSideProps = withIronSessionSsr(async function ({ req, res, }) { // 获取动态路由的id参数 const { id } = req.query; return { props: { user: req.session.user }, }; }, ironOptions);
运行后出现错误:
./pages/profile/[id].js:14:0 Module not found: Package path ./next/dist is not exported from package /Users/.../.../node_modules/iron-session (see exports field in /Users/.../.../node_modules/iron-session/package.json) > 14 | import { withIronSessionSsr } from 'iron-session/next/dist'; 15 | 16 | export default function Page({ user }) {
解决方法
修改导入路径,去掉末尾的/dist:
import { withIronSessionSsr } from 'iron-session/next';
原因说明
新版iron-session的Next.js相关工具函数直接从iron-session/next导出,next/dist属于包的内部路径,并未在package.json的exports字段中公开,所以无法被外部导入。调整导入路径后即可正常使用。
内容的提问来源于stack exchange,提问作者Coder Gautam YT
相关产品推荐
相关产品推荐

