首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取无服务器框架的defaultEncoding插件中的属性“defaultEncoding”

无法读取无服务器框架的defaultEncoding插件中的属性“defaultEncoding”
EN

Stack Overflow用户
提问于 2021-08-12 09:12:57
回答 2查看 475关注 0票数 4

我通过在无服务器2.53.1中执行命令安装了这个插件。

代码语言:javascript
复制
npm install --save-dev serverless-s3-sync

安装后,我在serverless.yml中导入了这样的插件

代码语言:javascript
复制
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)

以下是一个完整的错误:

EN

回答 2

Stack Overflow用户

发布于 2021-09-01 02:17:07

经过大量研究,我分离出了在已解决的节点子依赖项中存在多个不兼容版本的graceful-fs的原因。

在我的例子中,我使用的是serverless-python-requirements插件,而不是serverless-s3-sync,但是错误是相同的。这两个插件都将graceful-fs列为依赖项。

yarn list中可以看出,安装了三个不同版本的graceful-fs

代码语言:javascript
复制
% 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文件中:

代码语言:javascript
复制
  "resolutions": {
    "**/graceful-fs": "4.2.8"
  }

对于npm,应该可以使用国家预防机制-武力-决议实现相同的功能,但语法似乎略有不同(我还没有测试这个):

代码语言:javascript
复制
  "resolutions": {
    "graceful-fs": "4.2.8"
  }

删除锁文件和node_modules文件夹并重新安装可能会解决问题,但考虑到这带来的痛苦,我更乐意将版本插入到package.json中。

票数 3
EN

Stack Overflow用户

发布于 2021-12-12 10:06:58

我从无服务器框架中收到了两次错误消息。错误消息对根本原因不具有描述性。我解决这个问题的方法是:

  • 删除名为(1) node_modules和(2) .serverless的两个目录
  • 使用无服务器而不是npm重新安装依赖项,例如serverless plugin install -n serverless-s3-sync

现在我可以重新部署这个项目了。但是,错误信息是误导的,应该被认为是错误本身,即错误信息是痛苦的混乱的根源。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68754612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档