Есть ли способ указать узлы модулей, которые находятся в папке вне текущего корня проекта? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть несколько лямбд в проекте. Они используют лямбда-слой, поэтому структура проекта выглядит следующим образом:

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

Я бы хотел, чтобы каждый ts компилировался с использованием директории layer / nodejs / node_modules.

Я пытался использовать

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

в моем tsconfig, а также

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

Но я не могу заставить его работать.

Я ожидал, что используя базовые пути, я смогу прочитать его из другого каталога, но, похоже, это не так.

1 Ответ

0 голосов
/ 18 июня 2019

Свойство 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 вашего tsconfig:

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

Просто запустите tsc -w в своей базекаталог и компиляция будут сделаны при любом сохранении. Я надеюсь, что это ответит на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...