在此之前,我使用的是CommonJS和 module-alias 但我想转移到ES模块并切换到本机支持的导入映射,所以我在package.json中重构为:
module-alias
{ "imports": { "#http/*": "./http/", "#cloud/*": "./cloud/", "#constants": "./constants" } }
然而,当我在我的 server.js :
server.js
import APIClient from '#http/apiClient';
我得到以下错误:
不支持目录导入/Users/me/sampleApp/http/
这和 模块别名 我现在做错了什么?
模块别名
有了这些 subpath patterns ,您需要在两侧指定通配符,以及扩展名:
{ "imports": { "#http/*": "./http/*", "#cloud/*": "./cloud/*", "#constants": "./constants.js" } }
import APIClient from '#http/apiClient.js';
* 映射公开嵌套的子路径,因为它只是一种字符串替换语法。 所有实例 * 右侧的值将被替换为该值,包括它是否包含任何 / 分离器。
* 映射公开嵌套的子路径,因为它只是一种字符串替换语法。
*
所有实例 * 右侧的值将被替换为该值,包括它是否包含任何 / 分离器。
/