【问题标题】:Cannot Import OrbitControls using Node 12 ES6 Import无法使用 Node 12 ES6 Import 导入 OrbitControls
【发布时间】:2020-09-17 01:19:43
【问题描述】:

我正在使用 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 导入。

【问题讨论】:

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


【解决方案1】:

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

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

three 之前没有/

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

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

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

【讨论】:

  • 不幸的是,第二个答案给了我错误“无法解析模块说明符相对引用必须以“/”、“./”或“../”开头。”我不知道为什么。
  • 我尝试从 jsm 文件夹复制 OrbitControls 文件并将其发布到 index.js 旁边,问题是 OrbitControls 文件充满了对其他 js 文件的相对导入“来自”../ ../../build/three.module.js"" 所以它在第 18 行出现错误。我会尝试重新加载 node_modules
  • 不幸的是,我刚刚重新安装了 node_modules。
  • 我已经更新到Node 14.3,看看是不是实验功能,但没有用。
  • 我刚刚尝试使用 import * as THREE from 'three' 导入三个,并显示“无法解析模块说明符相对引用必须以“/”、“./”或“../”。所以我认为这是三个普遍存在的问题?
猜你喜欢
  • 1970-01-01
  • 2020-10-19
  • 2019-03-16
  • 2016-08-17
  • 2021-10-17
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
相关资源
最近更新 更多