仅在getServerSideProps中引用的库是否会被打入Next.js客户端包?
解答
Prisma不会被打入该页面发送到浏览器的客户端包中,Next.js完全可以自动剔除仅在服务端函数中引用的依赖包,原因如下:
- Next.js的构建流程会对页面文件做定向的代码分割和摇树优化,
getServerSideProps、getStaticProps、getStaticPaths这类明确标注为服务端专用的导出函数,会被单独抽离到仅在服务端运行的代码块中,不会被打包到下发给浏览器的客户端资源里。 - 所有仅在上述服务端函数中被引用的依赖、代码逻辑,都会被构建工具识别为客户端侧未使用的冗余代码,在打包客户端bundle时直接剔除,不会出现在前端资源中。
如果需要自行验证,可以安装@next/bundle-analyzer构建项目,查看客户端包的依赖组成,即可确认没有Prisma相关代码。你的现有写法符合Next.js的使用规范,不存在依赖泄露到客户端的问题。
内容的提问来源于stack exchange,提问作者Dan Ruswick
相关产品推荐
相关产品推荐

