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

导入Three.js与GLTFLoader时模块解析错误求助

解决GLTFLoader导入时"Failed to resolve module specifier 'three'"错误

这个问题的核心是GLTFLoader内部使用了裸模块标识符import * as THREE from 'three',而浏览器无法直接解析这种格式的模块导入,必须使用相对/绝对路径或通过导入映射指定模块位置。以下是几种可行的解决方法:

方法1:使用Import Maps(推荐)

在HTML文件中添加一个importmap脚本,将three映射到本地的three模块路径,这样GLTFLoader内部的导入会自动指向正确的文件:

<script type="importmap">
{
  "imports": {
    "three": "./node_modules/three/build/three.module.js"
  }
}
</script>

之后你的导入代码可以简化为:

import * as THREE from 'three';
import { GLTF, GLTFLoader } from './node_modules/three/examples/jsm/loaders/GLTFLoader.js';

方法2:修改GLTFLoader的内部导入路径

直接编辑./node_modules/three/examples/jsm/loaders/GLTFLoader.js文件,将顶部的导入语句:

import * as THREE from 'three';

替换为相对路径:

import * as THREE from '../../../build/three.module.js';

这种方法简单直接,但注意如果后续更新three包,修改会被覆盖。

方法3:使用CDN导入模块

直接使用CDN提供的three和GLTFLoader模块,避免本地路径解析问题:

import * as THREE from 'https://cdn.jsdelivr.net/npm/three@latest/build/three.module.js';
import { GLTF, GLTFLoader } from 'https://cdn.jsdelivr.net/npm/three@latest/examples/jsm/loaders/GLTFLoader.js';

这种方法无需配置本地依赖,适合快速测试或小型项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:31:01