问题标签 [serverless-webpack-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6498 浏览

node.js - 如何为多运行时 AWS Lambda 服务设置 serverless.yml 和 webpack.config

我想从一个 serverless.yml 文件部署具有 Node8.10 和 Ruby2.5 运行时的 AWS Lambda 函数。

我设置了以下文件夹结构,其中 /node 和 /ruby 分别保存了我的处理程序。

这是我的 serverless.yml

我的 webpack 配置:(这是基本示例,当我遇到第一个错误时,我只是添加了忽略 ruby​​ 文件的位。)

失败#0: [Webpack 编译错误] 模块解析失败

失败#1: 基本上,webpack 假设所有函数都是 .js 并尝试将它们打包。根据这个建议,我强制我在 webpack 配置中的入口点是我的 handler.js

这仅打包 Node Lambda。在 AWS 上创建 Ruby Lambda 的空占位符。

失败 #2: 我从 serverless.yml 中注释掉了 webpack,并在函数包选项中添加了 include 和 exclude 语句。

这会得到 node/node_modules/@babel/core/node_modules/.bin/parser 的 [ENOENT: no such file or directory]。该文件不存在,但我不明白它为什么要查找它,因为没有调用 webpack。

有点成功?: 如果我注释掉 webpack 并使用,我就能部署 Lambdas

部署 Ruby Lambda,然后取消注释 webpack 并使用相同的东西来部署 Node Lambda。

我相信有更好的方法让他们部署;我是否错过了设置中的某些内容?还有其他我没有尝试过的选择吗?

PS 我确实看到了这个拉取请求https://github.com/serverless-heaven/serverless-webpack/pull/256,但它似乎自 2017 年以来就被放弃了。

0 投票
1 回答
224 浏览

node.js - 如何让 serverless-webpack 与 babel.v8 一起使用来解决 - 错误:插件/预设文件不允许导出对象,只能导出函数?

什么地方出了错?

Babel 从 7.x 迁移到 8.x 节点从 8.x 迁移到 10.x

你用的是什么配置?

将 .babelrc 中的目标从 8.10 更改为 10.14.1 将 serverless.yml 中的运行时从 8.10 更改为运行时:nodejs10.14.1

您看到了来自您的提供商的哪些堆栈跟踪或错误消息?

这是我的.babelrc文件中的内容:

这是我的依赖项package.json

你怎么看?如果可能的话,我真的很想保持最新状态并使用最新版本的 babel。有人知道 serverless-webpack 是否支持 babel.v8 吗?

如果是这样,考虑到上述信息,我怎样才能让他们一起工作?

谢谢!

0 投票
1 回答
3119 浏览

serverless-framework - webpack: configuration.entry 应该是一个非空对象

serverless deploy使用最新的 webpack 版本抛出此错误。

webpack.config.js

包.json

这里有一些相关的东西:https ://github.com/serverless-heaven/serverless-webpack/issues/372

serverless.yml 是非常标准的,并且可以使用较旧的 webpack 版本。不是这里的 webpack 专家,非常感谢任何帮助。

0 投票
0 回答
534 浏览

node.js - 使用 serverless-webpack 在无服务器部署期间使用现有的 node_modules

我正在使用serverless体系结构开发节点应用程序。我们正在使用serverless-webpack插件来构建应用程序。这里是webpack.config.js

这是serverless.yml文件:

当我运行sls deploy --config serverless.yml 部署应用程序时,一切正常,并且 lambda 已成功部署。唯一的问题是,在部署过程中,它正在使用package-lock.json并再次安装使用过的包:

我的问题是如何在部署期间停止重新运行 npm install ,而不是node_moudles在打包外部模块时使用现有的。任何人都可以帮我解决这个问题。?

0 投票
1 回答
344 浏览

webpack - 使用 VSCode 调试无服务器离线功能 - 源映射问题?

我使用无服务器为 AWS Lambda 创建了一个简单的邮件函数。对于开发,我使用 serverless-offline 来复制 Lambda 的功能并使用 VSCode 作为我的 IDE。我也在使用 serverless-webpack 来生成我的结果代码。

在 VSCode 中的代码中设置断点时,它们被挖空并被标记为“未绑定”并且不会触发,但是当我插入debugger;语句时,执行会按原样停止。(作为旁注,执行停止debugger;并将我放在我的源文件中 - 不是我的结果文件 - 不确定这是为什么 - webpack 魔术?我在这里没有设置源映射,这可能是这里问题的一部分,但真的不确定)

我的 VSCode 启动我的无服务器离线调试实例的 launch.json 配置是:

触发的 npm 脚本是:

serverless-webpack 使用的配置(纯粹是为了让我可以注入一些环境变量)是:

任何帮助表示赞赏!只是想知道如何使用常规断点正常调试它,而不必依赖插入debugger;我想检查正在运行的代码的任何地方。

0 投票
3 回答
373 浏览

serverless-framework - Serverless Webpack 在 ZIP 包中生成空文件

Serverless + Webpack 在.serverless/<package>.zip.

在此处输入图像描述

配置

serverless.yml

webpack.config.js

附加数据

  • 无服务器-Webpack 版本:“无服务器-webpack”:“^5.3.5”,
  • Webpack 版本:“webpack”:“4.44.2”,
  • 无服务器框架版本:1.83.2
  • 操作系统:MacOS

我也尝试过其他版本组合:Serverless 2.20、webpack 5.17.0、copy-webpack-plugin 7.0.0

为什么在 ZIP 中为空文件?

更新:

我刚刚尝试在具有相同结果的示例项目sls package之一中运行ZIP 中的空文件。

0 投票
0 回答
92 浏览

webpack - 使用 serverless-bundle 插件时如何将 keepOutputDirectory 设置为 true

serverless-bundle插件似乎没有覆盖的选项keepOutputDirectory:true。默认情况下,它会在 sls deploy 命令中被删除。

我们如何在部署后保留.webpack文件夹.jsjsmap文件,因为我们需要它能够使用 thundra 进行远程调试。

并如此处指定:https : //apm.docs.thundra.io/node.js/online-debugging 它询问 js 和 js 以及 jsmap 文件所在的路径,以防使用 typescript

0 投票
1 回答
521 浏览

javascript - AWS Lambda 错误 - 没有这样的文件或目录

我已经部署了一些 AWS lambda 代码,但出现以下错误:

ENOENT No such file or directory found var/task/../data/cacert.pem

它正在寻找的文件在 lambda 中,请参见下图:

在此处输入图像描述

我使用 webpack 在那里添加文件:

谁能帮我理解这是什么原因造成的?

编辑:

证书文件正在文件中导入,handler.js如下所示:

请注意,上面的代码是 webpack 在捆绑应用程序时添加的,我无法编辑该导入语句。第三方库 (tinify.js) 需要该证书。

0 投票
1 回答
279 浏览

node.js - 无服务器打字稿错误:TypeError:无法读取 null 的属性“1”

Serverless-Webpack Typescript 错误“serverless-webpack”错误。

出现错误:类型错误------------------------------

TypeError:无法读取 null 的属性“1”

Stack - 使用 Typescript、Node.js 和 AWS Lambda 的无服务器后端

对我当前的堆栈使用 serverless-webpack 包,它一直工作到最后一天,突然停止工作并低于错误。尝试降级 serverless-webpack 的版本,但仍然出现错误。

0 投票
0 回答
287 浏览

node.js - 迁移到无服务器 webpack 后如何解决错误消息“解压后的大小必须小于 262144000”

迁移到无服务器 webpack 后,我的 lambda 出现大小限制错误!我已经迁移到 webpack 来解决这个问题,所以如果我仍然遇到同样的错误,那是不对的,请参阅下面的错误消息。

非常感谢!!

错误信息

发生错误:MainLambdaFunction - 资源处理程序返回消息:“解压缩大小必须小于 262144000 字节(服务:Lambda,状态代码:400,请求 ID:...,扩展请求 ID:null)”(RequestToken:... ,处理程序错误代码:无效请求)。

serverless.yml 配置

lambda 正在使用节点,所以我package.json的包含在下面以供参考。

包.json 文件