【问题标题】:TypeScript - Import Module (Non-Relative) From Custom LocationTypeScript - 从自定义位置导入模块(非相对)
【发布时间】:2021-08-16 23:09:10
【问题描述】:

假设我有以下目录结构:

- functions
   - functionOne
      - tsconfig.json
      - index.ts
      - package.json
      - node_modules
- layers
   - layerOne
      - tsonfig.json
      - index.ts
      - index.js (compiled index.ts)
      - package.json
      - node_modules

functions/functionOne/index.ts 内,我正在尝试导入layerOne

import JenkinsCredentials from '@prefix/module-name';

现在,我知道 TypeScript 会像“@prefix/module-name 到底是什么。所以,在 tsconfig.json 中我写了以下内容:

  "baseUrl": ".",
  "paths": {
    "@prefix/module-name": ["../../layers/layerOne"] 
  }

但是,这似乎不起作用。我收到以下错误:

Cannot find module '@prefix/module-name' or its corresponding type declarations.ts(2307)

我认为设置 baseURLpaths 会对此有所帮助吗?我在做什么错/我需要做什么才能让 TypeScript 将 @prefix/module-name 的自定义模块名称映射到目录 "../../layers/layerOne"

注意:自定义名称的原因是 Lambda 层以这种方式引用。

【问题讨论】:

    标签: javascript node.js typescript amazon-web-services aws-lambda


    【解决方案1】:

    paths 关键字将. 视为tsconfig.json 文件的路径。

    您需要将path设置为:

      "baseUrl": ".",
      "paths": {
        "@prefix/module-name": ["./layers/layerOne"] 
      }
    

    所以不管你从哪里调用import JenkinsCredentials from '@prefix/module-name';,它总是会产生同一个文件。

    【讨论】:

    • 我将路径设置为./layers/layerOne,但是,我仍然遇到同样的错误。我重新启动了 VS Code,但仍然出现相同的错误消息。
    • 所以实际的问题是我把它放在我的tsconfig.json 的根目录下,而不是在compilerOptions 的下面。很抱歉出现问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2014-06-25
    • 2016-12-17
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多