Node 19中package.json的imports字段能否支持多级目录别名导入?
Node 19 package.json imports 别名多级目录问题解析
你的情况是正常的,当前配置的通配符规则不支持多级子目录导入,原因和解决方法如下:
问题原因
你配置里的"#fruits/*": "./src/fruits/*.js"使用的是单级通配符*,它只能匹配#fruits/之后的一级路径(比如#fruits/fruits.js),无法识别包含斜杠的多级嵌套路径(比如#fruits/pseudo/pseudofruits.js)。这是Node.js imports字段通配符的默认匹配逻辑。
另外,你配置的"#fruits/*.js": "./src/fruits/*.js"属于冗余配置,#fruits/*已经能匹配带.js后缀的一级文件,无需重复设置。
解决方法
如果要支持#fruits/开头的所有多级路径,只需将通配符改为双星**,同时调整目标路径的匹配规则:
"imports": { "#fruits/**": "./src/fruits/**/*.js", "#vegetables/**": "./src/vegetables/**/*.js" }
配置完成后,import * from "#fruits/pseudo/pseudofruits.js"就能正确映射到./src/fruits/pseudo/pseudofruits.js。
Node.js的imports字段中,**通配符可以匹配任意字符序列(包括斜杠),刚好满足多级目录的匹配需求。
内容的提问来源于stack exchange,提问作者Bruno Peixoto
相关产品推荐
相关产品推荐

