docker build vue3 与节点上的 element-ui 不兼容:16-buster-slim

Kam*_*mil 5 node.js npm docker vue.js

  • docker文件:
FROM node:16-buster-slim
RUN apt-get update

WORKDIR /app
COPY package.json /home
RUN npm install --prefix /home
Run Code Online (Sandbox Code Playgroud)
  • 包.json
FROM node:16-buster-slim
RUN apt-get update

WORKDIR /app
COPY package.json /home
RUN npm install --prefix /home
Run Code Online (Sandbox Code Playgroud)

步骤: RUN npm install --prefix /home
---> 在 fc08d7e933ed 中运行 npm notification
npm notification npm 新补丁版本可用!8.1.0 -> 8.1.4
npm notification 更新日志:https://github.com/npm/cli/releases/tag/v8.1.4 npm notification 运行npm install -g npm@8.1.4更新!
npm 通知
npm 错误!代码 ERESOLVE
npm 错误!ERESOLVE 无法解析依赖树
npm 错误!
npm 错误!解决时:artemis@0.1.0
npm ERR!发现:vue@3.2.22
npm 错误!node_modules/vue
npm 错误!来自根项目
npm 的 vue@"^3.0.0" 错误!
npm 错误!无法解决依赖关系:
npm ERR!来自 element-ui@2.15.6 npm 的对等 vue@"^2.5.17"
错误!node_modules/element-ui
npm 错误!来自根项目
npm 的 element-ui@"^2.15.6" 错误!
npm 错误!修复上游依赖冲突,或者重试
npm ERR!此命令带有 --force 或 --legacy-peer-deps
npm ERR!接受不正确的(并且可能损坏的)依赖关系解析。
npm 错误!
npm 错误!有关完整报告,请参阅 /root/.npm/eresolve-report.txt。

                                                                                                                                                                                                                                                                                                        npm ERR! A complete log of this run can be found in:                  
Run Code Online (Sandbox Code Playgroud)

npm 错误!/root/.npm/_logs/2021-11-25T01_40_08_953Z-debug.log

但这在基础图像package.json上效果很好node:lts-alpine

rak*_*aht 2

看来你有问题peer dependencies,如果你只是将你的 npm 设置为使用遗留依赖逻辑来安装你的包,你就会解决问题。

只需在运行 npm install 之前将此设置添加到您的 Dockerfile 中:

...
COPY package.json /home
RUN npm config set legacy-peer-deps true
RUN npm install --prefix /home
Run Code Online (Sandbox Code Playgroud)

要了解这个标志的作用,我建议您阅读这个 SO 答案,其中对其进行了广泛的解释。