localstack / localstack/serverless-localstack

Issue with working serverless-webpack

Đang mở
#266 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

serverless-webpack status: backlog status: response required
Ngôn ngữ chính
JavaScript
Star
542
Fork
92
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

As the documentation says, I added this configuration inside my `custom` property in the serverless.yaml

```yaml
localstack:
stages:
# list of stages for which the plugin should be enabled
- local
- development
host: http://localhost # optional - LocalStack host to connect to
edgePort: 4566 # optional - LocalStack edge port to connect to
autostart: true # optional - Start LocalStack in Docker on Serverless deploy
networks: #optional - attaches the list of networks to the localstack docker container after startup
- host
- overlay
lambda:
# Enable this flag to improve performance
mountCode: true # specify either "true", or a relative path to the root Lambda mount path
```

The `webpack` config is this for the serverless:

```yaml
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
excludeFiles: tests/**/*.{js,ts}
keepOutputDirectory: true
```

This is the webpack configuration:

```js
const path = require('path');
const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals');

module.exports = {
entry: slsw.lib.entries,
target: 'node',
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
optimization: {
minimize: false,
},
plugins: [],
performance: {
// Turn off size warnings for entry points
hints: false,
},
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader?configFile=tsconfig.build.json',
exclude: [/node_modules/, /tests/],
},
],
},
resolve: {
extensions: ['.ts', '.js'],
},
output: {
libraryTarget: 'commonjs2',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
cache: {
type: 'filesystem',
},
};
```

And I'm getting this error:

```
Execution environment startup failed: {"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'a-handler'\nRequire stack:\n- /var/runtime/index.mjs","trace":["Runtime.ImportModuleError: Error: Cannot find module 'a-handler'","Require stack:","- /var/runtime/index.mjs"," at _loadUserApp (file:///var/runtime/index.mjs:1087:17)"," at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1119:21)"," at async start (file:///var/runtime/index.mjs:1282:23)"," at async file:///var/runtime/index.mjs:1288:1"]}
```

And it looks like is because the handler path is incorrect, it says this

` '_HANDLER': '.webpack/service/src/a-dir/a-handler.handle'`

But when webpack package the code is located in `.webpack/a-dir/a-handler.handle`, what would be the solution for that, I'm kind of lost, should I update the `output` path?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với cấu hình handler trong serverless.yaml và webpack.config.js, sau đó so sánh các đường dẫn .webpack được tạo với giá trị _HANDLER hiển thị trong lỗi. Kiểm tra cách plugin và serverless-webpack xác định đường dẫn của handler đã được đóng gói. Được xem là hoàn tất khi đường dẫn handler đã triển khai khớp với vị trí .webpack/a-dir/a-handler.handle được tạo và lời gọi LocalStack khởi động thành công.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, webpack
Lĩnh vực
cloud
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.