首页 > 解决方案 > 无法使用 Node 12 ES6 Import 导入 OrbitControls

问题描述

我正在使用 Node 12(实验模块)和三个(npm),我无法让 Imports 为 OrbitControls.js 工作。我有 index.js 作为“脚本:模块”。

这些 ES6 导入都不起作用

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

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

它不起作用我收到错误

未捕获的语法错误:请求的模块“./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 导入。

标签: javascriptnode.jsecmascript-6three.jses6-module-loader

解决方案


我没有使用实验模块,但你的第二个例子应该是

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

没有/之前three;

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

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

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


推荐阅读