首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么模块别名没有将别名路径替换为原始路径?

为什么模块别名没有将别名路径替换为原始路径?
EN

Stack Overflow用户
提问于 2022-02-12 07:13:48
回答 1查看 118关注 0票数 0

我希望使用模块别名转换类型记录项目中的别名路径。首先,我安装模块-别名:

代码语言:javascript
复制
yarn add module-alias

package.json中添加配置如下:

代码语言:javascript
复制
"_moduleAliases": {
    "@": "."
}

但是,当我使用@导入模块时,会显示如下错误:

代码语言:javascript
复制
Cannot find module '@/auth/extension/AuthHandler'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?ts(2792)

AuthHandler路径是src/auth/extension/AuthHandler,为什么没有找到模块?我该怎么做才能让它发挥作用?

EN

回答 1

Stack Overflow用户

发布于 2022-10-25 15:45:32

TLDR

在index.ts/starter文件中

代码语言:javascript
复制
import moduleAlias from "module-alias";
moduleAlias.addAlias("@fn", __dirname);

以及匹配的tsconfig声明:

代码语言:javascript
复制
[...]

    "paths": {
      "@fn/*": ["./src/*"]
    },

[...]

不长,想读

在与此进行了相当长时间的斗争之后,我最终从_moduleAlias中删除了package.json条目,并在index.ts中注册了别名,如下所示:

代码语言:javascript
复制
moduleAlias.addAliases({
  "@fn/*": `${__dirname}/lib/src`,
});

然而,这也不是一蹴而就。这个片段有两个问题:

  • 第一个问题是贪婪操作符,它将实际别名和路径倾斜到别名应该生效的模块,例如,而不是输出:/path/to/module/@aliased_folder/sub,贪婪运算符的使用导致这个路径:@aliased_folder/sub
  • 在我的例子中,使用__dirname和输出文件夹lib/src在路径中创建了一个重复,例如:/ path /to/ my /lib/src/lib/src/aliased

因此,我最后提出了以下工作案文:

代码语言:javascript
复制
import moduleAlias from "module-alias";
moduleAlias.addAlias("@fn", __dirname);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71089748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档