我是个新手,所以如果这是一个显而易见的答案,我很抱歉。我目前正在尝试使用以下库将typescript lambda api部署到亚马逊网络服务:https://www.npmjs.com/package/ts-lambda-api
该库使用Inversify进行依赖注入:https://github.com/inversify/InversifyJS
图书馆也建议只使用zip构建,但如果可以的话,我想使用webpack。
我的api目前有两个文件,一个是主api.ts文件,另一个是controller.ts文件。目前,api类使用与ts-lambda-api文档中相同的行查找控制器:
const controllersPath = [path.join(__dirname, "controllers")]
const app = new ApiLambdaApp(controllersPath, appConfig)
因此,一旦绑定了控制器目录,我就需要它对api.ts类可用。目前我的webpack配置是这样的:
import path = require('path')
import webpack = require('webpack')
const config: webpack.Configuration = {
module: {
rules: [
{ test: /\.js\.map$/, use: "ignore-loader" },
{ test: /\.d\.ts$/, use: "ignore-loader" }
]
},
mode: 'production',
entry: {
my_api: ['./src/my-api.js'],
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name]/main.js',
library: '[name]',
libraryTarget: 'commonjs2'
},
target: 'node',
externals: [/aws-sdk.*/, 'aws-lambda']
};
export default config
我如何添加它,以允许我的api访问它需要的其他类?webpack的文档有一个关于多个入口点(https://webpack.js.org/concepts/entry-points/#multi-page-application)的页面,但这似乎不是我想要的,因为它给了我多个包。
我可以通过如下操作将多个文件放入一个包中:
api: ['./src/api.js','./src/controllers/controller.js],
尽管这不适用于可注入的注解。还有没有别的主意?
发布于 2020-09-20 13:47:33
我设法绕过了这个问题,按照ts-lambda-api文档中关于如何做到这一点的部分手动加载了控制器。
https://stackoverflow.com/questions/63977944
复制