Я создал очень простой пакет NPM только с двумя файлами
index.js:
module.exports = {
errors: {
HttpError: require('./src/errors').HttpError,
test: 'value'
}
}
src / errors.js:
class HttpError extends Error {
constructor (message, code) {
super(message)
this.statusCode = code
if (Error.captureStackTrace) {
Error.captureStackTrace(this, HttpError)
}
}
}
exports.HttpError = HttpError
КогдаЯ устанавливаю этот пакет, я могу использовать свой класс ошибок без проблем.Однако, когда я создаю пакет развертывания с помощью Serverless и пытаюсь запустить код как часть лямбды AWS, лямбда, похоже, не может разрешить класс HttpError.
В моей функции лямбда, работающей на AWSКогда я запрашивал пакет как const и выходил из него, журнал выглядит так:
{"errors":{"test":"value"}}
, тогда как локально это выглядит так:
{ errors:
{ HttpError: [Function: HttpError],
test: 'value' } }
Я скачал пакет развертыванияот AWS и может подтвердить, что это выглядит точно так же, как локальная версия.Я не могу найти ничего в лямбда-документах, которые подразумевают, что я не могу использовать require для модулей javascript.Что я делаю не так?