【问题标题】:npm ERR! notsup Unsupported engine for @nestjsi/class-validator@0.2.1: wanted: {"node":">=16.0.0"} (current: {"node":"14.19.3","npm":"6.14.17"})npm 错误! notsup @nestjsi/class-validator@0.2.1 不支持的引擎:想要:{\"node\":\">=16.0.0\"}(当前:{\"node\":\"14.19.3\ ",\"npm\":\"6.14.17\"})
【发布时间】:2022-09-23 04:44:13
【问题描述】:

在构建 Dockerfile 时,我得到:

npm ERR! notsup Required: {\"node\":\">=16.0.0\"}
npm ERR! notsup Actual:   {\"npm\":\"6.14.17\",\"node\":\"14.19.3\"}

Dockerfile:

FROM abc.xyz.com/abc-xyxa/ab/nodejs:14 As Development

USER root
# set the root\'s npm configuration to our project\'s configuration
COPY .npmrc /root/.npmrc


# copy project file
COPY package.json .
# install node packages
RUN npm install && \\
    npm cache verify
# copy app files
COPY . .

# Set EDT Time Zone
RUN echo America/New_York | tee /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata
# application server port
EXPOSE 3000
# default run command
CMD [ \"nest\", \"start\" ]

如果我使用版本 14,我有这个错误:

npm ERR! code ENOTSUP
npm ERR! notsup Unsupported engine for @nestjsi/class-validator@0.2.1: wanted: {\"node\":\">=16.0.0\"} (current: {\"node\":\"14.19.3\",\"npm\":\"6.14.17\"})
npm ERR! notsup Not compatible with your version of node/npm: @nestjsi/class-validator@0.2.1
npm ERR! notsup Not compatible with your version of node/npm: @nestjsi/class-validator@0.2.1
npm ERR! notsup Required: {\"node\":\">=16.0.0\"}
npm ERR! notsup Actual:   {\"npm\":\"6.14.17\",\"node\":\"14.19.3\"}

npm ERR! A complete log of this run can be found in:
npm ERR!     /apps/.npm/cache/_logs/2022-07-22T15_16_09_537Z-debug.log

如果我使用版本 16,那么我有这个错误:

npm ERR! Found: rxjs@7.5.6
npm ERR! node_modules/rxjs
npm ERR!   rxjs@\"^7.2.0\" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer rxjs@\"^6.0.0\" from @nestjs/common@7.6.18

我已经尝试过的事情:

  • 降级 npm 版本
  • 降级节点版本

让我知道这个问题的可行解决方案

  • 错误就在那里?这需要节点 16 或更高版本,但您使用的是节点 14 docker 映像。将您的 docker 基础映像更新为节点 16 或更高版本。
  • 是的,正如我在解决方案中提到的累了,如果我在 dockerfile 中使用 16 版本,它的 npm ERR!无法解决依赖关系:npm ERR!来自@nestjs/common@7.6.18 的对等 rxjs@\"^6.0.0\"
  • 所以显示完全错误,因为在这两个“你甚至不在正确版本的节点上”之间是你需要首先解决的问题。
  • 非常明显的错误:你正在使用@nestjs/common v7.6.18,它想要rxjs v6.x,而你的package.json安装rxjs v7.5.6,所以要么降级rxjs(降级总是一个坏主意除非它是在提升的最开始)或升级@nestjs/common,因为当前版本是 9.x,比您正在使用的两个主要版本更新。

标签: node.js docker npm nestjs


【解决方案1】:

我相信你需要更新你的@nestjs/common 版本。它应该可以解决问题。

【讨论】:

  • 我尝试更新它,但它没有帮助。
【解决方案2】:

最好的解决方案是使用 npm-check -u 列出已过时的依赖项。

【讨论】:

    【解决方案3】:

    我尝试使用 nvm use 12,它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 2022-07-28
      相关资源
      最近更新 更多