Building does not include the bn.js module within bundled zip file.
For bug reports:
What went wrong?
The required dependency bn.js is not in the Serverless zip file after running serverless deploy. The package does exist within the local node_modules directory when running serverless run local. Thus, serverless run local succeeds but serverless run fails with the following error:
"Error: Cannot find module 'bn.js'",
What did you expect should have happened?
The node_modules directory should be the same when running serverless deploy or serverless run local.
This is a Bug Report
Description
Building does not include the
bn.js
module within bundled zip file.For bug reports:
What went wrong? The required dependency
bn.js
is not in the Serverless zip file after runningserverless deploy
. The package does exist within the localnode_modules
directory when runningserverless run local
. Thus,serverless run local
succeeds butserverless run
fails with the following error:"Error: Cannot find module 'bn.js'",
What did you expect should have happened? The
node_modules
directory should be the same when runningserverless deploy
orserverless run local
.What was the config you used?
serverless.yml
:custom: s3-bucket: name: mongo-extractor-${opt:stage, self:provider.stage, 'dev'} arn: arn:aws:s3:::${self:custom.s3-bucket.name} webpack: webpackConfig: ./webpack.config.js includeModules: true
plugins:
provider: name: aws runtime: nodejs12.x timeout: 600 region: us-west-1 memorySize: 512 stage: dev iamRoleStatements:
functions: handler: src/setup.setup
resources: Resources: DataBucket: Type: AWS::S3::Bucket Properties: BucketName: ${self:custom.s3-bucket.name}
{ "version": "1.0.0", "description": "", "main": "handler.js", "scripts": { "deploy:dev": "serverless deploy --stage=dev", "deploy:prod": "serverless deploy --stage=prod", }, "dependencies": { "@types/mongodb": "^3.6.1", "@types/pino": "^6.3.4", "aws-sdk": "^2.794.0", "bn.js": "^5.1.3", "mongodb": "^3.6.3", "pino": "^6.7.0", "serverless-dotenv-plugin": "^3.1.0", "snowflake-promise": "^4.2.0", "snowflake-sdk": "^1.5.3" }, "devDependencies": { "@types/aws-lambda": "^8.10.17", "@types/node": "^10.17.46", "@types/serverless": "^1.72.5", "eslint-config-juni": "0.0.45", "serverless-iam-roles-per-function": "^2.0.2", "serverless-plugin-typescript": "^1.1.9", "serverless-webpack": "^5.2.0", "ts-loader": "^5.3.3", "ts-node": "^8.10.2", "typescript": "^3.9.7", "webpack": "^4.29.0", "webpack-node-externals": "^1.7.2" } }
const path = require('path'); const slsw = require('serverless-webpack'); const nodeExternals = require('webpack-node-externals');
module.exports = { context: dirname, mode: slsw.lib.webpack.isLocal ? 'development' : 'production', entry: slsw.lib.entries, devtool: slsw.lib.webpack.isLocal ? 'cheap-module-eval-source-map' : 'source-map', resolve: { extensions: ['.mjs', '.json', '.ts'], symlinks: false, cacheWithContext: false, }, output: { libraryTarget: 'commonjs', path: path.join(dirname, '.webpack'), filename: '[name].js', }, target: 'node', externals: [nodeExternals()], module: { rules: [ // all files with a
.ts
or.tsx
extension will be handled byts-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, }, }, ], } };For feature proposals: N/A
Similar or dependent issue(s): Not found.
Additional Data
"^5.2.0"
"^4.29.0"
"^2.12.0"