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

在Nest.js中使用file-type v19.4.1时遇ERR_PACKAGE_PATH_NOT_EXPORTED错误

解决Nest.js中使用file-type v19.4.1时的ERR_PACKAGE_PATH_NOT_EXPORTED错误

问题根源:file-type从v19版本开始改为纯ESM模块,不再支持CommonJS的require()导入,而Nest.js默认项目配置为CommonJS(未设置"type": "module"),直接使用常规导入会触发导出路径错误。

以下是几种可行的解决办法:

方法一:切换项目为ESM模式

  1. 在项目根目录的package.json中添加"type": "module":
    {
      "type": "module",
      // 其他原有配置...
    }
    
  2. 修改控制器中的导入代码为ESM格式:
    import { fileTypeFromFile } from 'file-type';
    
  3. 注意:项目中所有CommonJS语法(如require()、module.exports)需要同步改为ESM语法(import/export)。

方法二:使用动态导入(无需全局修改项目类型)

如果不想切换整个项目的模块系统,可以在需要调用file-type的地方使用动态导入:

async function getFileType(filePath) {
  const { fileTypeFromFile } = await import('file-type');
  return fileTypeFromFile(filePath);
}

在控制器的异步方法中调用这个函数即可。

方法三:降级到兼容CommonJS的版本

如果上述方案都不适用,可以降级到file-type v18(最后一个支持CommonJS的版本):

npm uninstall file-type
npm install file-type@18

之后即可使用原有的CommonJS或ESM导入方式:

// CommonJS
const { fileTypeFromFile } = require('file-type');
// 或 ESM
import { fileTypeFromFile } from 'file-type';

内容的提问来源于stack exchange,提问作者Roberto C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:32:05