有没有一种方法可以指定当前项目根目录之外的文件夹中的节点模块?

时间:2019-06-18 04:17:47

标签: typescript node-modules

我在一个项目中有几个lambda。他们使用lambda层,因此项目结构如下:

lambdas/
  create/
    index.ts
  delete/
    index.ts
  layer/
    nodejs/
      node_modules

我想使用layer / nodejs / node_modules目录来编译每个ts。

我尝试使用

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "*" : ["../utility_layer_1/nodejs"]
    }
  }
}

在我的tsconfig和

{
  "compilerOptions": {
    "baseUrl": "../utility_layer_1/nodejs",
    "paths": {
      "*" : ["."]
    }
  }
}

但是我似乎无法使其正常工作。

我希望通过使用基本路径,可以使它从其他目录中读取,但事实并非如此。

1 个答案:

答案 0 :(得分:0)

paths属性用于使非相对导入相对(请参阅https://www.typescriptlang.org/docs/handbook/module-resolution.html)。因此,您可以像这样

导入实用程序层
import { Something } from 'layer1'

设置tsconfig.json

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "layer1": ["../utility_layer_1/nodejs"]
    }
  }
}

但是,要编译实用程序文件夹中的所有内容,您正在寻找include的{​​{1}}属性:

tsconfig

只需在您的基本目录中运行{ "compilerOptions": { "baseUrl": ".", "paths": { "layer1": ["../utility_layer_1/nodejs"] } }, "include": [ "../utility_layer_1/*.ts", "../utility_layer_1/nodejs/*.ts" ] } ,任何保存都将完成编译。我希望这能回答您的问题。