来自tsconfig.json的无服务器框架和路径映射不起作用



我在tsconfig.json文件中定义了这样的路径映射

"paths": {
"~/*": ["./src/*"]
}

它适用于ts-node -r tsconfig-paths/register,但是当涉及到在插件的帮助下从.ts编译到.js文件的 lambda 时serverless-plugin-typescript它不起作用。

我不能再在我的 lambdaimport * as db from '~/db/psql';中这样做了。

我知道为什么,这没关系,但是我能做些什么来让它工作。

我正在尝试切换到serverless-plugin-typescript以将.ts文件编译为.js文件。以前,我使用 webpack 和tsconfig-paths-webpack-plugin并且有效,但我想避免使用webpack来编译 lambda。

经过大量挖掘,我发现无服务器不支持打字稿提供的路径选项。

对于其他任何人,选项似乎是:

1)复制代码

2)利用Webpack插件覆盖servless,并允许在打字稿中设置rootDir

。3) 将共享模块代码符号链接到每个微服务目录。我编写了一个 bash 脚本,它将一个名为"_shared"的目录符号链接到名为"微服务"的父目录下一级的所有目录:

find microservices ! -path microservices -type d -maxdepth 1 -d -exec ln -s ../../_shared ./{} ;

然后,您需要将每个符号链接添加到您的 .gitignore 中:

/microservices/**/_shared

因此,该项目的工作流程是:

  1. 首次克隆存储库时,运行 bash 脚本以创建符号链接

  2. 当您位于微服务子一级目录中时,引用从同一级别的符号链接导入_shared

  3. 对顶级目录进行并提交所有更改_shared

相关内容

  • 没有找到相关文章

最新更新