localstack / localstack/serverless-localstack
Issue with working serverless-webpack
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 542
- Forks
- 92
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
As the documentation says, I added this configuration inside my custom property in the serverless.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:
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
excludeFiles: tests/**/*.{js,ts}
keepOutputDirectory: true
This is the webpack configuration:
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?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la configuration du handler dans serverless.yaml et webpack.config.js, puis comparez les chemins .webpack générés avec la valeur de _HANDLER affichée dans l’erreur. Vérifiez comment le plugin et serverless-webpack déduisent le chemin du handler empaqueté. C’est terminé lorsque le chemin du handler déployé correspond à l’emplacement généré .webpack/a-dir/a-handler.handle et que l’invocation de LocalStack démarre correctement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, webpack
- Domaine
- cloud
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100