需要安装最新版本的npm

8

我是一名编程新手,请别对我太苛刻。

我在Github上有一个项目,由软件公司开发 - 它是使用Django Rest框架、React app和Docker制作的MVP应用程序。

现在我想在我的Mac上运行它,但出现了问题。

当我运行docker-compose.yml并使用docker-compose up启动时,它会安装所有包,直到尝试安装npm的步骤,然后我会收到一个错误:

npm notice 
npm notice New patch version of npm available! 7.4.0 -> 7.4.3
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.4.3>
npm notice Run `npm install -g npm@7.4.3` to update!
npm notice 
ERROR: Service 'pet-frontend' failed to build : The command '/bin/sh -c npm install --silent' returned a non-zero code: 1
Failed to deploy 'Compose: docker-compose.yml': `docker-compose` process finished with exit code 1

我不知道为什么无法安装最新版本?我有最新的Node.js,其中npm是7.4.0。

我该如何强制安装7.4.0或如何安装7.4.0以便部署能够继续进行?

__更多信息__

前端dockerfile文件如下:

FROM node:latest

WORKDIR /app

ENV PATH /app/node_modules/.bin:$PATH

COPY package.json ./
RUN npm install --silent
RUN npm install react-scripts@3.4.1 -g --silent

COPY . ./

CMD ["npm", "start"]

当我添加 'RUN npm install -g npm@7.4.3' 时,仍然会收到相同的错误。

当我运行 npm 而不使用 --silent 选项时,我会遇到这个错误:

npm notice 
npm notice New patch version of npm available! 7.4.0 -> 7.4.3
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.4.3>
npm notice Run `npm install -g npm@7.4.3` to update!
npm notice 
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: prop-types@15.6.0
npm ERR! node_modules/prop-types
npm ERR!   peer prop-types@"<=15.6.0" from check-prop-types@1.1.2
npm ERR!   node_modules/check-prop-types
npm ERR!     dev check-prop-types@"^1.1.2" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! react-leaflet-search@"^2.0.1" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: prop-types@15.7.2
npm ERR! node_modules/prop-types
npm ERR!   peer prop-types@"^15.7.2" from react-leaflet-search@2.0.1
npm ERR!   node_modules/react-leaflet-search
npm ERR!     react-leaflet-search@"^2.0.1" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /root/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-01-26T10_49_01_333Z-debug.log
ERROR: Service 'petsy-frontend' failed to build : The command '/bin/sh -c npm install' returned a non-zero code: 1
Failed to deploy 'Compose: docker-compose.yml': `docker-compose` process finished with exit code 1

我怀疑你引用的升级通知不是实际问题。如果你移除 --silent 选项,你会得到更多输出吗? - David Maze
是的,我得到了不同的输出,我编辑了原始消息并将其发布在末尾。 - Michael
1
我注意到的一件事是在安装过程中缺少 package-lock.json,这可能是导致错误的原因。你应该尝试将 COPY package.json ./ 替换为 COPY package.json package-lock.json ./,然后运行 docker-compose up --build - Getriax
2个回答

5

在运行npm install之前,我添加了以下行,对我很有效。它会选择最新的npm版本并将其安装在您的目录中。

RUN npm install -g npm@7.19.1


-1

npm install npm@{最新版本号}

你可以使用这个命令,我刚刚试过了,可行。


您的回答可以通过提供更多支持信息来得到改进。请[编辑]以添加详细信息,如引用或文档,以便他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接