无法使用节点12 ES6导入来导入OrbitControls

时间:2020-05-29 12:53:22

标签: javascript node.js ecmascript-6 three.js es6-module-loader

我正在使用节点12(实验模块)和节点3(npm),并且我无法使Imports能够用于OrbitControls.js。我将index.js作为“脚本:模块”。

这两个ES6导入都不起作用

我尝试将OrbitControls.js文件从js文件夹中复制出来(从三个根文件夹中复制),并将其放置在index.js旁边,然后添加

import {OrbitControls} from "./OrbitControls.js"

它不起作用,我收到错误消息

未捕获的SyntaxError:所请求的模块'./OrbitControls.js'确实 不提供名为“ OrbitControls”的导出

所以我也尝试使用这三个库

import {OrbitControls} from "/three/examples/jsm/controls/OrbitControls";

返回404错误,因此我尝试了相对导入

import {OrbitControls} from "../../node_modules/three/examples/jsm/controls/OrbitControls.js";

再次遇到404错误。

我也尝试过(建议其他用户使用)const OrbitControls = new THREE.OrbitControls,但错误似乎仅来自ES6导入。

1 个答案:

答案 0 :(得分:2)

我还没有使用实验模块,但是您的第二个示例应该是

import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";

/之前没有three

如果这不起作用,您可以尝试将OrbitControls.js源代码from here复制粘贴到您自己的文件夹中。

import { OrbitControls } from "./myFolder/OrbitControls";

如果这可行,则可能是您的node_modules安装问题。