【问题标题】:Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './public/extractFiles' is not defined by "exports" in错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 './public/extractFiles' 未由“exports”定义
【发布时间】:2021-12-28 16:20:57
【问题描述】:
运行我构建的 docker 映像后出现以下错误
错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 './public/extractFiles' 未由 /app/node_modules/apollo-upload-client/node_modules/extract-files/package.json 中的“导出”定义
以下是我的 Dockerfile:
`FROM 节点:17.1.0
WORKDIR /app
复制 package.json ./
复制 package-lock.json ./
复制 ./ ./
运行 npm 安装
CMD [ "npm", "start" ]`
不知道是不是node.js版本的问题,所以想换个版本,但总是遇到同样的问题。
请帮忙
【问题讨论】:
标签:
node.js
docker
dockerfile
【解决方案1】:
同样的问题。
在我的情况下,这是由于旧的 npm 包依赖关系而引发的。
extract-files 版本 7 使用了已弃用的节点函数:
(node:2520) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./public/" in the "exports" field module resolution of the package at ...\node_modules\extract-files\package.json.
节点 17 引发了您发布的此错误。
可能的解决方案:
- 将提取文件包更新到最新版本
- 使用节点 16.x
额外提示:
因为你正在复制 package-lock.json 你可以运行
npm ci
而不是 npm 安装。它速度更快,适用于 CI/CD 管道