Разрешение относительных путей в бессерверном приложении Nodejs в Typescript

#node.js #typescript #lambda #serverless

#node.js #typescript #лямбда #бессерверный

Вопрос:

У нас есть приложение NodeJS, написанное на typescript. Мы используем модули, использующие относительные пути, например

 import foo from '@/bar';
  

У нас есть следующая запись путей в tsconfig.json

 "paths": {
  "@/*": [
    "./*"
  ]
}
  

Поскольку typescript не поддерживает преобразование путей, мы используем ttypescript для компиляции и переопределения tsconfig.json с помощью tsconfig.build.json

 {
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "plugins": [
      {
        "transform": "@zerollup/ts-transform-paths"
      }
    ]
  },
  "exclude": ["node_modules/**", "tests/**"]
}  

и используйте yarn для создания кода

 yarn clean amp;amp; ttsc --project ./tsconfig.build.json
  

Теперь это создает код и преобразует относительные пути @module в абсолютные.

Далее мы используем бессерверную платформу для сборки и развертывания этого кода как lambda. Бессерверный использует tsconfig.json для построения кода и эффективно игнорирует пользовательское преобразование пути.

Вопрос:

  1. возможно ли решить вышеуказанную проблему без использования ttypescript и плагина?
  2. Можно ли настроить serverless для использования ttypescript и пользовательского tsconfig
  3. Есть ли другой способ решить проблему?

Спасибо

Комментарии:

1. есть успехи с этим? Сейчас у меня такая же проблема

2. пока нет. Я также поднял это на бессерверном канале slack и не получил ответа

3. 3 квартал 2021 года, и это по-прежнему лучшее решение