当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何通过unpkg引入three.js?

姚乐家
2023-08-15

问题描述

three.js新手,我没有起前端框架,想通过unpkg引入简单的试一下demo。
参考官网给的安装方式Option 2: Import from a CDN
index.html内引入three.js,业务代码在main.js。main.js中无法识别THREE。

相关代码

index.html

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Basic Scene</title>  <!-- 引入three.js -->  <script async src="https://unpkg.com/es-module-shims@1.6.3/dist/es-module-shims.js"></script>  <script type="importmap">    {      "imports": {        "three": "https://unpkg.com/three@0.155.0/build/three.module.js"      }    }  </script>  <script type="module">    import * as THREE from 'three';    console.log(THREE);  </script></head><body>  <script src="./main.js"></script></body></html>

main.js

console.log("Hello Three.js")console.log("js" + THREE)const scene = new THREE.Scene();

你期待的结果是什么?实际看到的错误信息又是什么?

我希望能够在main.js中识别THREE,并且创建一个scene。目前看到的报错是:

main.js:2 Uncaught ReferenceError: THREE is not defined at main.js:2:20

谢谢围观和帮助!

共有1个答案

仲孙阳
2023-08-15
<!-- index.html --><script type="module">  import * as THREE from 'three';  console.log(THREE);  console.log("Hello Three.js");  console.log("js" + THREE);  const scene = new THREE.Scene();</script>

或者:
index.html

<script type="module" src="./main.js"></script>

main.js:

import * as THREE from 'three';console.log("Hello Three.js");console.log("js" + THREE);const scene = new THREE.Scene();
 类似资料:
  • 问题内容: 我试图在JPA映射的实体上引入多键约束: 基本上,(产品,序列)对应该是唯一的,但是我只找到一种说序列应该是唯一的方法。这显然不是一个好主意,因为不同的产品可能具有相同的序列号。 有没有办法通过JPA生成此约束,还是我被迫手动将其创建到DB? 问题答案: 您可以使用实体类中的注释来声明唯一约束,即 请注意,这并不是在数据库中神奇地创建唯一约束,您仍然需要DDL才能创建它。但是似乎您正在

  • 问题内容: 该代码不起作用 问题答案: JavaScript区分大小写。 因此,如果要更改字体大小,则必须执行以下操作:

  • 问题内容: 我正在考虑AJAX应用程序必须轮询轮询更新有多大限制,而最理想的是javascript能够建立与服务器的真正双向连接。我想知道是否存在将javascript与可以建立tcp连接的浏览器插件集成的方法,以便可以将数据传入和传出浏览器插件。 问题答案: 这是具有类似方法的实现: 套接字 它使用Java Applet,并将其API桥接到JavaScript,有趣的是… 这里是另一个: 套接字

  • 问题内容: Javascript是通过引用传递还是通过值传递?这是 Javascript中的 一个示例 :The Good Parts 。我对矩形函数的参数非常困惑。它实际上是,并在函数内部重新定义。没有原始参考。如果我从功能参数中删除它,则内部区域功能将无法访问它。 是关闭吗?但是没有函数返回。 问题答案: 基元按值传递,对象按“引用副本”传递。 具体来说,当您传递对象(或数组)时,您(无形中)

  • 我看了一些其他帖子,试图复制他们所做的,但他们似乎都没有遇到与我相同的问题。基本上,我试图存储S3存储桶中的密钥列表,以便在我的Vue应用程序中迭代它们。我有下面的代码,你可以看到我有3个控制台。记录我试图打印文件值的语句。第一个完全按照我的预期打印,而第二个打印,而第三个根本不打印。因此,出于某种原因,它没有将文件的值持久化到s3之外。listObjectsV2()函数,这意味着我无法访问应用程

  • 有如下一个样式表: 希望通过@import语法将其引入.style.css,并修改 import.css 的级联优先级: 通过@layer component-1,component,importLayer;把importLayer的级联优先级设置为最高的,让p的文字为yellow,可是结果为red。 import 的外部样式如何指定级联优先级呢?