【问题标题】:How to have aliases with nodejs import如何使用 nodejs 导入别名
【发布时间】:2022-01-06 12:01:28
【问题描述】:

我有一个项目使用node.js v16,越来越多的npm libs不再兼容require,需要配合import使用。

到目前为止,我一直在使用 package.json 将我的根目录作为别名

  // package.json
  "dependencies": {
    "~src": "file:.",
  }

在我的源代码中

const someCode = require('~src/absolute/path/someCode');

这不适用于导入,并且通过我进行的测试,我还没有找到任何解决方案使其适用于导入。

你有遇到过这样的问题吗?并找到了解决方案?

【问题讨论】:

    标签: node.js import alias require


    【解决方案1】:

    我相信在当前版本的 Node 中为文件夹命名的首选方法是使用 subpath imports

    例如,您可以将根文件夹别名为#src(导入映射必须始终以# 开头)。为此,请在 package.json 中添加以下导入部分:

    "imports": {
      "#src/*": "./*.js"
    }
    

    现在,假设你的包中有一个文件some/path/someCode.js,你可以像这样导入它:

    import someCode from '#src/some/path/someCode';
    

    您还可以使用相同的语法映射子文件夹:

    "imports": {
      "#src/*": "./*.js",
      "#somepath/*": "./some/path/*.js"
    }
    

    在导入文件中:

    import someCode from '#somepath/someCode';
    

    【讨论】:

    • 很好,谢谢你的回答,我明天试试:)
    • 这工作正常。我对'index.js'没有自动管理有点失望,但似乎是由于(nodejs.org/api/esm.html#mandatory-file-extensions)这是一个话题,但你对如何强制执行自动'.js / index.js有任何想法' 管理?
    • 不幸的是,导入名称似乎无法匹配多个文件,例如 require 可以通过附加“.js”、“.json”、“/index.js”、@987654324 @
    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2018-01-23
    • 2019-03-16
    • 2019-03-24
    • 2018-10-26
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多