конфигурация webpack без серверной сборки не может найти модули для развертывания aws - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь создать бэкэнд на основе 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/
      }
    ]
  }
};

Может кто-нибудь помочь определить / устранить проблему здесь

...