【发布时间】:2020-08-12 00:17:49
【问题描述】:
我正在尝试在我的 JavaScript 文件(不是 HTML 脚本元素)中导入 Three.js,但我收到错误消息“未捕获的语法错误:无法在模块外使用 import 语句”。如果我将 Three.js 代码放在 HTML 中的 Script 元素中,我的 Three.js 代码可以工作,但我想使用 canvas 元素来显示 JavaScript 文件中的代码。
我已经使用 NPM 安装了 Three.js 并导入了。我还在我的 html 中使用了我在 JavaScript 中查询的 canvas 元素。
import * as THREE from 'three';
let scene, camera, renderer, geo, orbs, controls;
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight);
controls = new THREE.TrackballControls(camera);
controls.addEventListener('change', render);
let canvas = document.querySelector("canvas");
renderer = new THREE.WebGLRenderer({
alpha: true,
canvas: canvas
});
我尝试过声明一个 const 并要求,以及在脚本中添加“type="module”,但这也不起作用。
我是 Three 的新手,我不确定这是否是最佳实践,因为我发现它在脚本标签中的使用频率比在单独的 JS 文件中的使用频率更高。
谢谢!
【问题讨论】:
-
我相信这个has already been answered before。您必须在脚本标签中添加模块类型:
<script type="module" src="myFile.js"></script> -
感谢两位的回复!在问这个问题之前,我确实尝试添加模块类型。但我实际上解决了这个问题!我意识到我没有正确安装包。
标签: javascript html import three.js