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

已安装GraphQL仍报错:无法解析'graphql/language'模块

解决ESM模式下无法解析'graphql/language'的模块未找到错误

你遇到的问题是因为@ensdomains/ensjs的ESM构建版本中,导入graphql/language时没有添加文件扩展名,而严格ESM模式(比如.mjs文件)要求模块路径必须完全指定扩展名才能解析。以下是几种可行的解决办法:

方法1:修改Webpack配置关闭完全指定检查

如果你的项目用Webpack构建,可以在webpack.config.js中添加如下配置,让Webpack自动补全扩展名并关闭严格的完全指定要求:

module.exports = {
  // ...其他配置
  resolve: {
    fullySpecified: false,
    extensions: ['.mjs', '.js', '.json', '.graphql']
  }
};

方法2:用patch-package给ensjs打补丁

直接修改@ensdomains/ensjs的导入语句并生成持久化补丁,避免每次安装依赖后重复修改:

  1. 安装patch-package开发依赖:
npm install patch-package --save-dev
  1. 找到node_modules/@ensdomains/ensjs/dist/esm/GqlManager.mjs,将其中的import ... from 'graphql/language'修改为import ... from 'graphql/language/index.mjs'
  2. 生成补丁文件:
npx patch-package @ensdomains/ensjs
  1. 在package.json的scripts中添加postinstall脚本,确保每次安装依赖后自动应用补丁:
{
  "scripts": {
    // ...其他脚本
    "postinstall": "patch-package"
  }
}

方法3:升级ensjs到更新版本

你当前使用的是3.0.0-alpha.58这个测试版本,可能官方已经在后续版本中修复了ESM导入的问题。尝试升级到最新的alpha版本或稳定版:

npm install @ensdomains/ensjs@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:52:50