我通过在无服务器2.53.1中执行命令安装了这个插件。
npm install --save-dev serverless-s3-sync安装后,我在serverless.yml中导入了这样的插件
plugins:
- serverless-plugin-common-excludes
- serverless-plugin-include-dependencies
- serverless-python-requirements
- serverless-s3-sync但是(无服务器部署)给出了以下错误。屏幕截图的错误也是附加的。(此错误仅在导入serverless.yml文件中的无服务器-S3-sync插件时发生,其他插件运行良好)。
错误详细信息:
(C:\serverless_v2\node_modules\readable-stream\lib_stream_readable.js:619:20) at _write (节点:事件:394:28)的WriteStream.Writable.write (节点:内部/流/可写:334:10),TypeError:无法读取未定义的_write的属性“defaultEncoding”(节点:内部/流/可写:291:24)
以下是一个完整的错误:

发布于 2021-09-01 02:17:07
经过大量研究,我分离出了在已解决的节点子依赖项中存在多个不兼容版本的graceful-fs的原因。
在我的例子中,我使用的是serverless-python-requirements插件,而不是serverless-s3-sync,但是错误是相同的。这两个插件都将graceful-fs列为依赖项。
从yarn list中可以看出,安装了三个不同版本的graceful-fs:
% yarn list
├─ fs-extra@9.1.0
│ ├─ at-least-node@^1.0.0
│ ├─ graceful-fs@^4.2.0 ← version used by fs-extra
│ ├─ jsonfile@^6.0.1
│ └─ universalify@^2.0.0
…
├─ graceful-fs@4.2.2 ← version directly declared in package.json
…
├─ jsonfile@6.1.0
│ ├─ graceful-fs@^4.1.6
│ ├─ graceful-fs@4.1.15 ← version used by jsonfile
│ └─ universalify@^2.0.0
…这个库的一个版本创建的流对象似乎不能被另一个版本所使用。
使用yarn,我通过将graceful-fs固定到最新版本来解决这个问题,方法是将其添加到graceful-fs文件中:
"resolutions": {
"**/graceful-fs": "4.2.8"
}对于npm,应该可以使用国家预防机制-武力-决议实现相同的功能,但语法似乎略有不同(我还没有测试这个):
"resolutions": {
"graceful-fs": "4.2.8"
}删除锁文件和node_modules文件夹并重新安装可能会解决问题,但考虑到这带来的痛苦,我更乐意将版本插入到package.json中。
发布于 2021-12-12 10:06:58
我从无服务器框架中收到了两次错误消息。错误消息对根本原因不具有描述性。我解决这个问题的方法是:
serverless plugin install -n serverless-s3-sync现在我可以重新部署这个项目了。但是,错误信息是误导的,应该被认为是错误本身,即错误信息是痛苦的混乱的根源。
https://stackoverflow.com/questions/68754612
复制相似问题