代码之家  ›  专栏  ›  技术社区  ›  ololo

不支持目录导入

  •  1
  • ololo  · 技术社区  · 6 月前

    在此之前,我使用的是CommonJS和 module-alias 但我想转移到ES模块并切换到本机支持的导入映射,所以我在package.json中重构为:

    {
       "imports": {
          "#http/*": "./http/",
          "#cloud/*": "./cloud/",
          "#constants": "./constants"
        } 
    }
    

    然而,当我在我的 server.js :

    import APIClient from '#http/apiClient';
    

    我得到以下错误:

    不支持目录导入/Users/me/sampleApp/http/

    这和 模块别名 我现在做错了什么?

    1 回复  |  直到 6 月前
        1
  •  2
  •   Ry- Vincenzo Alcamo    6 月前

    有了这些 subpath patterns ,您需要在两侧指定通配符,以及扩展名:

    {
      "imports": {
        "#http/*": "./http/*",
        "#cloud/*": "./cloud/*",
        "#constants": "./constants.js"
      } 
    }
    
    import APIClient from '#http/apiClient.js';
    

    * 映射公开嵌套的子路径,因为它只是一种字符串替换语法。

    所有实例 * 右侧的值将被替换为该值,包括它是否包含任何 / 分离器。