Я пытаюсь создать бэкэнд на основе http://serverless.com фреймворка и начал использовать этот репозиторий для справки - https://github.com/AnomalyInnovations/serverless-stack-demo-api
Теперь я добавил ту же конфигурацию, файлы ресурсов, но хотелорганизовать мои функции обработчика.Итак, обновил структуру каталогов так, чтобы она выглядела примерно так:* где содержимое файла пользовательских маршрутов -
healthcheck:
# Defines an HTTP API endpoint that calls the healthcheck function in handler.js
# - path: url path is /health-check
# - method: GET request
handler: handler.healthcheck
events:
- http:
path: health-check
method: get
cors: true
create:
handler: controllers/service/handler.main
events:
- http:
path: users
method: post
cors: true
authorizer: aws_iam
get:
# Defines an HTTP API endpoint that calls the main function in get.js
# - path: url path is /users/{id}
# - method: GET request
handler: controllers/service/handler.main
events:
- http:
path: users/{id}
method: get
cors: true
authorizer: aws_iam
Теперь при попытке развертывания без сервера я получаю следующую ошибку -
ERROR in ./controllers/user/get.js
Module not found: Error: Can't resolve '../../../libs/dynamodb-lib' in 'E:\work\dittytv\backend\controllers\user'
@ ./controllers/user/get.js 70:19-56
ERROR in ./controllers/user/list.js
Module not found: Error: Can't resolve '../../../libs/dynamodb-lib' in 'E:\work\dittytv\backend\controllers\user'
@ ./controllers/user/list.js 69:19-56
ERROR in ./controllers/user/create.js
Module not found: Error: Can't resolve '../../../libs/dynamodb-lib' in 'E:\work\dittytv\backend\controllers\user'
@ ./controllers/user/create.js 68:19-56
Теперь мой файл контроллера начинается с этого -
import * as dynamoDbLib from "../../../libs/dynamodb-lib";
import { success, failure } from "../../../libs/response-lib";
и кроме этого я пробовал ./libs/
./../../../libs
, но все равно та же ошибка.
Я предполагаю, что это как-то связано с веб-пакетом.Итак, вот конфиг веб-пакета, который я использую -
const slsw = require("serverless-webpack");
const nodeExternals = require("webpack-node-externals");
module.exports = {
entry: slsw.lib.entries,
target: "node",
// Generate sourcemaps for proper error messages
devtool: 'source-map',
// Since 'aws-sdk' is not compatible with webpack,
// we exclude all node dependencies
externals: [nodeExternals()],
mode: slsw.lib.webpack.isLocal ? "development" : "production",
optimization: {
// We no not want to minimize our code.
minimize: false
},
performance: {
// Turn off size warnings for entry points
hints: false
},
// Run babel on all .js files and skip those in node_modules
module: {
rules: [
{
test: /\.js$/,
loader: "babel-loader",
include: __dirname,
exclude: /node_modules/
}
]
}
};
Может кто-нибудь помочь определить / устранить проблему здесь