Estoy tratando de modificar un código generado a partir de la plantilla aws-nodejs-typescript . Instalé typeorm , reflect reflect-metadata y pg para trabajar con PostgreSQL.
Están en dependencies en package.json 
La configuración del paquete web es la predeterminada.
const path = require('path'); const slsw = require('serverless-webpack'); const nodeExternals = require('webpack-node-externals'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); /* This line is only required if you are specifying `TS_NODE_PROJECT` for whatever reason. */ // delete process.env.TS_NODE_PROJECT; module.exports = { context: __dirname, mode: slsw.lib.webpack.isLocal ? 'development' : 'production', entry: slsw.lib.entries, devtool: slsw.lib.webpack.isLocal ? 'eval-cheap-module-source-map' : 'source-map', resolve: { extensions: ['.mjs', '.json', '.ts'], symlinks: false, cacheWithContext: false, plugins: [ new TsconfigPathsPlugin({ configFile: './tsconfig.paths.json', }), ], }, output: { libraryTarget: 'commonjs', path: path.join(__dirname, '.webpack'), filename: '[name].js', }, optimization: { concatenateModules: false, }, target: 'node', externals: [nodeExternals()], module: { rules: [ // all files with a `.ts` or `.tsx` extension will be handled by `ts-loader` { test: /\.(tsx?)$/, loader: 'ts-loader', exclude: [ [ path.resolve(__dirname, 'node_modules'), path.resolve(__dirname, '.serverless'), path.resolve(__dirname, '.webpack'), ], ], options: { transpileOnly: true, experimentalWatchApi: true, }, }, ], }, plugins: [], }; El problema: después de la sls deploy el archivo zip no contiene el paquete pg y, por lo tanto, las solicitudes fallan porque el Postgres package has not been found installed. Try to install it: npm install pg --save . ¿Cómo puedo solucionar esto?
Sospecho que esto podría estar sucediendo debido a una resolución de dependencia dinámica o lo que sea, ya que no hay una dependencia directa en mi código y typeorm decide qué controlador usar en función de la cadena en la configuración de la conexión.
PS sls offline funciona, por lo que el código debería ser correcto y el problema está relacionado con este paquete no incluido en el archivo zip.
Sí, tiene razón, probablemente no haya una dependencia directa y use requisitos dinámicos, es decir, necesita módulos que solo se conocen en tiempo de ejecución.
Por lo tanto, debe forzar la adición usando lo siguiente:
custom: webpack: includeModules: forceInclude: - pgVer inclusión forzada en serverless-webpack .