【问题标题】:Can't import from absolute paths using Typescript and NodeJS无法使用 Typescript 和 NodeJS 从绝对路径导入
【发布时间】:2021-11-13 01:47:59
【问题描述】:

我已经尝试了很多方法来解决这个问题。我正在尝试从tsconfig.json上定义的绝对路径导入

在我正在尝试使用的项目文件上import { UserModel } from "model/User";

在我的tsconfig.json 我有

{
....
"baseUrl": "src", 
"paths": {
  "model/*": ["model/*"]`
  }
....
}

我尝试将 baseUrl 更改为 ".""./" 并更改路径,但我总是遇到同样的错误:

Error: Cannot find module 'model/User'

我还尝试将index.ts 文件添加到model 文件夹并从那里导出模型,但仍然......同样的问题。任何帮助表示赞赏。

【问题讨论】:

    标签: node.js typescript import path


    【解决方案1】:

    如果您正在编写一个包,那么您可能会保留使用ttypescript lib + @zerollup/ts-transform-paths 插件 - 这些可以完成工作。此外,构建你的包必须使用ttsc 而不是tsc

    另一方面,如果您使用捆绑器将代码捆绑在一起(如webpack),则必须保留捆绑器配置提供的方式。

    另外,如果你使用 ESLint,你必须确保它通过 eslint-import-resolver-typescript npm 包使用 tsconfig.json

    此外,如果您使用 Jest 进行单元测试,则必须像这样枚举可能的“根”:

      moduleDirectories: ['node_modules', 'src'],
    

    【讨论】:

    • 嗨,谢谢您的回答。我安装了插件,发现了 4 个漏洞,其中 2 个非常重要。难道你不知道另一种方式吗?
    • 嘿嘿!好吧,这个应该是仅服务器的构建时工具,所以我实际上并没有深入研究那个“漏洞”话题。早在一天前,这对我来说是让它发挥作用的最简单方法,我仍然继续使用这种方法。
    • 酷!感谢您的帮助,不胜感激。
    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2020-06-26
    相关资源
    最近更新 更多