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

Node应用部署生产环境报ERR_PACKAGE_PATH_NOT_EXPORTED错误咨询

错误根因

这个ERR_PACKAGE_PATH_NOT_EXPORTED错误触发的核心原因是:

  • pako 2.x版本的package.json新增了严格的exports字段规则,限制了外部可引用的子路径,而你使用的pizzip版本硬编码引用了未被暴露的./dist/pako.es5.js路径
  • 你提到两台服务器都是Node 14.x,但Node 14的小版本差异会直接影响这个校验逻辑:Node 14.13之前的版本不会校验package.json的exports字段,14.13及之后的版本会严格校验该规则,这就是测试环境正常、生产环境报错,哪怕完整复制node_modules也没用的核心原因,这个逻辑是Node运行时内置的,和依赖文件本身无关。
  • NODE_ENV变量确实不会影响该校验逻辑,可以排除这个可能性。

修复方案

  • 首先对齐两台服务器的Node精确版本:分别在两台服务器执行node -v确认小版本号,统一使用相同的Node 14小版本即可快速复现/解决问题,推荐统一升级到Node 14的最终LTS版本14.21.3。
  • 依赖版本修复(无需调整Node版本的方案):
    • 方案一:升级pizzip到最新稳定版,高版本pizzip已经修复了pako引用路径不兼容的问题,适配了pako 2.x的exports规则。
    • 方案二:如果你无法升级pizzip,可在项目package.json中添加版本覆盖规则,强制pizzip依赖的pako使用1.x版本(pako 1.x没有exports字段限制):
      如果你使用npm 7及以上版本,添加overrides配置:
      {
        "overrides": {
          "pizzip": {
            "pako": "^1.0.11"
          }
        }
      }
      
      如果你使用yarn,添加resolutions配置:
      {
        "resolutions": {
          "pizzip/pako": "^1.0.11"
        }
      }
      
      配置添加完成后重新安装依赖即可生效。
  • 临时兜底方案:如果需要快速验证修复效果,可在启动Node脚本时添加--no-conditions exports参数跳过exports规则校验,示例:
    node --no-conditions exports 你的启动脚本路径.js
    
    该方案仅建议临时调试使用,不建议在生产环境长期开启。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:39:03