Next.js中使用INLINE_RUNTIME_CHUNK=false无效?运行时代码仍存在
Next.js 关闭运行时代码分离的正确配置方式
INLINE_RUNTIME_CHUNK=false是Create React App(CRA)专属的环境变量配置,仅适用于CRA构建的React项目,和Next.js没有任何关联,所以在Next.js项目中设置这个变量完全无效。针对Next.js,仅设置
config.optimization.runtimeChunk = false可能不够,因为Next.js默认Webpack配置中还有splitChunks的runtime拆分规则,需要一并调整:module.exports = { webpack: (config) => { // 关闭runtime chunk的单独拆分 config.optimization.runtimeChunk = false; // 移除splitChunks中默认的runtime拆分规则 if (config.optimization.splitChunks) { delete config.optimization.splitChunks.runtime; } return config; }, };若使用Next.js 13+的App Router,需注意:框架为支持React Server Components、客户端组件 hydration等核心特性,会保留一部分必需的运行时代码,这部分代码会被打包进入口JS中,无法通过Webpack配置移除,属于正常现象。
验证配置是否生效:执行
next build后,查看.next/static/chunks目录,若不再生成单独的runtime-*.js文件,说明配置已生效。
内容的提问来源于stack exchange,提问作者Sukyeong Park
相关产品推荐
相关产品推荐

