node.js - 是否可以将 webpack 与使用依赖注入的库一起使用?
问题描述
我对 webpack 很陌生,所以如果这是一个明显的答案,我深表歉意。我目前正在尝试使用此库将 typescript lambda api 部署到 AWS: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],
尽管这不适用于 Injectable 注释。有人有其他想法吗?
解决方案
我设法通过在 ts-lambda-api 文档中有关如何执行此操作的部分之后手动加载控制器来解决此问题。
推荐阅读
- ios - 列表不异步更新列表中的行数?
- mysql - 表结构以支持单个列中的多次尝试
- html - 为什么数字不能正确粘贴在 HTML 输入字段中?
- c++ - n叉树中的多线程
- laravel - Laravel 中的 API JWT 保护和 Web 会话保护
- c# - @Html.Raw 和 Url.Action
- python-3.x - 如何从记录器类仅向一个文件处理程序发送消息
- javascript - Typescript - 有没有办法通过常量将类型应用于变量?
- javascript - 鼠标移动时滚动窗口仅在鼠标移动时有效
- ruby-on-rails - Capistrano assets:precompile 部署失败,日志不清楚,其他人可以看看吗?