Next.js从根目录导入:以斜杠开头的导入语句是否合法?
关于Next.js默认项目中/开头导入可正常运行的说明
你提到的如下导入方式可以正常运行的核心原因是Next.js内置的编译配置做了隐式处理:
// 相对路径嵌套导入 import { myUtil } from '../../../../../lib/utils' // 斜杠开头的绝对路径导入 import { myUtil } from '/lib/utils'
具体原因说明
- Next.js默认会将导入路径开头的
/映射到项目根目录(即package.json所在目录),编译阶段会直接按这个路径规则匹配本地的项目文件,不需要额外配置即可生效。 - 该行为属于Next.js内部对模块导入规则的扩展,不属于ES模块标准定义的通用行为,也没有在官方公开文档中作为正式特性标注,属于未公开的隐式实现。
不推荐直接使用该方式的原因
- 未公开的隐式实现没有稳定性承诺,后续Next.js版本迭代可能修改该规则,直接使用会存在项目升级风险。
- 官方明确推荐的
@别名方案是标准化能力,文档覆盖齐全,语义更清晰,也便于其他开发者理解项目导入规则,适配性和稳定性都更高。
内容的提问来源于stack exchange,提问作者Glenn
相关产品推荐
相关产品推荐

