【发布时间】: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/commonv7.6.18,它想要rxjsv6.x,而你的package.json安装rxjsv7.5.6,所以要么降级rxjs(降级总是一个坏主意除非它是在提升的最开始)或升级@nestjs/common,因为当前版本是 9.x,比您正在使用的两个主要版本更新。