You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行自建Docker镜像报ERR_PACKAGE_PATH_NOT_EXPORTED错误如何解决

这个错误是apollo-upload-client依赖的extract-files包版本不兼容导致的:新版extract-files调整了package.json中的exports规则,移除了./public/extractFiles路径的导出,而旧版apollo-upload-client仍然按旧路径导入模块,就会触发该报错,和Node版本没有直接关联。

解决步骤

步骤1:调整依赖版本匹配规则

在项目的package.json中添加对应配置强制锁定兼容的extract-files版本:

  • 如果你使用npm作为包管理器,添加overrides字段:
{
  "name": "your-project",
  // 其余原有配置...
  "overrides": {
    "apollo-upload-client": {
      "extract-files": "9.0.0"
    }
  }
}
  • 如果你使用yarn作为包管理器,添加resolutions字段:
{
  "name": "your-project",
  // 其余原有配置...
  "resolutions": {
    "extract-files": "9.0.0"
  }
}

你也可以选择直接升级apollo-upload-client到最新正式版,新版已经适配了extract-files的导出规则,无需额外锁定版本:

npm install apollo-upload-client@latest

步骤2:修正Dockerfile配置

你当前的Dockerfile拷贝顺序存在逻辑问题:先安装依赖再全量拷贝项目文件时,如果本地项目存在node_modules目录,会直接覆盖镜像内安装的依赖包,导致依赖异常。调整为如下顺序即可:

FROM node:17.1.0
WORKDIR /app
# 仅拷贝依赖声明文件,利用Docker分层缓存,修改源码无需重复安装依赖
COPY package.json package-lock.json ./
RUN npm install
# 后续拷贝项目源码,不会覆盖已安装的node_modules
COPY ./ ./
CMD [ "npm", "start" ]

同时请确保项目根目录存在.dockerignore文件,且已添加node_modules规则,避免本地依赖被拷贝到镜像中:

# .dockerignore 文件内容
node_modules
npm-debug.log

步骤3:重新构建镜像

执行以下命令清除缓存重新构建镜像即可:

docker build --no-cache -t <你的镜像名> .

内容的提问来源于stack exchange,提问作者Curious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:24:03