如何在行导出类ReusableRay中修复意外的令牌'export''

时间:2019-11-01 19:35:59

标签: javascript three.js

当前,我想使用Three.js并检测单击的对象以获取有关该对象的信息。

因此,我看到以下示例:sample 它使用的是ReusableRay类,但是我当前的javascript项目在。

我正在尝试修改以下模块:my example Project

  <script type="module">
        import * as THREE from './build/three.module.js';
        import { OrbitControls } from './js/controls/OrbitControls.js';
        import {ReusableRay } from './js/ReusableRay.js'; // error
        //detect
        if (!Detector.webgl) Detector.addGetWebGLMessage();
        var ray = new ReusableRay();
        var projector = new THREE.Projector();
        var directionVector = new THREE.Vector3();

但是我总是有相同的错误:未捕获的SyntaxError:意外的令牌'export'。这是我修改过的课程:myReusableRay

谢谢。

1 个答案:

答案 0 :(得分:0)

在您的index.html中,您两次输入了ReusableRay。通过<script>标记一次,然后使用ES6 import语句一次。由于ReusableRay是一个模块,因此只能使用ES6导入。

顺便说一句:您还两次包含three.js。一次three.js<script>,然后通过ES6导入import * as THREE from './build/three.module.js';。这绝对是错误的。通常,应避免混合使用模块代码和非模块代码。

我还建议您更仔细地研究ES6模块如何工作,以避免此类问题。

https://exploringjs.com/es6/ch_modules.html