离线创建第一个threejs项目

概述

我们采用下载threejs源码包的方式本地离线创建一个threejs项目。

本笔记对应的threejs版本为r172,由于threejs版本更迭较快,所以请采用指定版本。

知识储备

1.importmap类型脚本

在现代前端开发中,importmap 是一种用于管理 JavaScript 模块导入的新特性,它允许开发者在浏览器中直接映射模块的名称到具体的 URL,而无需依赖打包工具(如 Webpack 或 Rollup)。这对于使用 ES 模块(ESM)以及加载第三方库(比如 Three.js)非常有用,尤其是在原生浏览器环境中。

1.1 什么是importmap

importmap 是一种通过 <script type="importmap"> 标签定义的 JSON 对象,用于告诉浏览器如何解析 ES 模块的导入路径。它可以映射模块的名称(或路径)到实际的 URL。

基本语法如下:

<script type="importmap">
{
     
     
  "imports": {
     
     
    "模块名": "模块URL"
  }
}
</script>

模块名:你在代码中 import 时使用的名称(例如 three)。

模块URL:模块的具体地址,通常是一个 CDN 链接或本地文件路径。

1.2 实际案例

我们拿threejs官网的案例来举例

{
   
   
  "imports": {
   
   
    "three": "https://cdn.jsdelivr.net/npm/three@0.172.0/build/three.module.js",
    "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.172.0/examples/jsm/"
  }
}
  • “three”:映射 Three.js 的核心模块,指向 three.module.js,这是 ES 模块格式的核心文件。

  • “three/addons/”:映射 Three.js 的附加模块(如控制器、加载器等),这些模块位于 examples/jsm/ 目录下。通过这种方式,可以直接导入 OrbitControls 等模块。

在使用时我们需要配合type="module"的脚本,例如:

<!-- 使用 type="module" 的脚本 -->
<script type="module">
    // 导入 Three.js 核心模块
    import * as THREE from 'three';
    // 加载控制器(例如 OrbitControls)
    import {
     
      OrbitControls } from 'three/addons/controls/OrbitControls.js';
</script>

<script type="module"> 表明这是一个 ES 模块脚本,可以使用 import 语法。

源码下载

我们可以前往如下地址获取最新的threejs源码。

网页:https://threejs.org/

github地址:https://github.com/mrdoob/three.js/

1.网页获取

在这里插入图片描述

点击download获取源码压缩包,压缩包名为three.js-master.zip,与github最新发行版的内容一致。

注意事项:网页版下载的源码包时最新的发行版,如果要使用特定版本的threejs需要前往github下载。

2.github下载

访问github,从如下位置访问各发行版

在这里插入图片描述

您可以下载最新的发行版,也可以寻找特定版本下载,找到相应版本号,下载Assets中的压缩包,两个压缩包内容一致,只是压缩方式不同,根据自身系统选择一个即可。

在这里插入图片描述

源码使用

解压源码,得到如下结构:

在这里插入图片描述

解压得到build目录,我们需要使用的就是其中的three.module.js文件。

注意:three.module.js依赖three.core.js,所以至少要这两个文件。

当然也可以直接访问整个build目录。

html使用源码

我们先用importmap引入需要用到的源码,例如

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>第一个场景</title>
    <script type="importmap">
      {
     
     
        "imports": {
     
     
          "three": "../../build/three.module.js"
        }
      }
    </script>
  </head>
  
<think> 根据用户需求,用户希望将three.js离线导入到VSCode。结合提供的引用内容,我们可以总结出以下步骤: 1. 引用[2]提到,Three.js官方已经转向使用ES6 module或CommonJS方式引入,因此我们需要下载Three.js的库文件。 2. 引用[3]中提到安装nodejs,并使用npm命令安装@types/three,这样可以获得类型定义,方便在VSCode中智能提示。 因此,离线导入Three.js到VSCode的步骤如下: **步骤1:下载Three.js库文件** - 访问Three.js的官方GitHub仓库(https://github.com/mrdoob/three.js)或官方下载页面(https://threejs.org/),下载完整的Three.js库。 - 通常,我们可以下载压缩包(如.zip文件)或克隆仓库到本地。 **步骤2:将Three.js文件放入项目目录** - 在项目文件夹中创建一个目录(例如`libs`或`vendor`)用于存放第三方库。 - 将下载的Three.js库中的`build/three.min.js`(或`build/three.js`)复制到该目录。 **步骤3:在HTML文件中引入** - 如果是在HTML页面中使用,可以直接通过`<script>`标签引入: ```html <script src="path/to/three.min.js"></script> ``` **步骤4:使用npm安装类型定义(可选,但推荐)** - 为了在VSCode中获得智能提示(IntelliSense),我们需要安装类型定义文件。引用[3]提到,使用命令: ```bash npm install --save @types/three ``` - 注意:执行该命令前,确保已经在项目目录中初始化了npm(即执行过`npm init`)。 **步骤5:配置VSCode(如果需要)** - 如果智能提示没有生效,可以尝试重启VSCode,或者检查项目是否在VSCode中正确打开了包含`node_modules`的目录。 **注意**:如果用户的项目环境是Node.js(如使用CommonJS模块),则可以通过以下方式导入: ```javascript const THREE = require('./path/to/three.js'); ``` 如果使用ES6模块(在支持的环境下),可以这样导入: ```javascript import * as THREE from './path/to/three.module.js'; ``` **离线安装类型定义的补充说明**: - 如果需要在没有网络的环境下安装`@types/three`,可以先在一台有网络的环境中将npm包下载下来(包括依赖),然后复制整个`node_modules`目录到离线环境中的项目目录下。 §§相关问题§§ 1. 如何在没有网络的情况下安装npm包? 2. Three.js在VSCode中如何进行调试? 3. 如何配置VSCode来增强JavaScript开发体验? </think> ### 将 Three.js 离线导入 VSCode 的方法 根据引用内容,以下是完整操作步骤: #### ✅ 核心步骤 1. **下载 Three.js 库文件** - 访问 [Three.js GitHub](https://github.com/mrdoob/three.js) 下载最新版(或所需版本)的 `/build/three.min.js` 文件 ```bash wget https://raw.githubusercontent.com/mrdoob/three.js/master/build/three.min.js ``` 2. **在项目中引入文件** ```html <!-- HTML 文件中 --> <script src="./libs/three.min.js"></script> <!-- 推荐放在 libs 目录 --> ``` 3. **安装类型定义(智能提示)** ```bash npm install --save @types/three # 需提前安装 Node.js ``` 安装后会在项目中生成 `node_modules/@types/three` 文件夹,提供代码补全功能[^3]。 #### ⚠️ 注意事项 - **本地路径引入**:官方已弃用 CDN 引入方式,必须下载文件到本地目录[^2] - **重启 VSCode**:安装 `@types/three` 后需重启编辑器激活智能提示 - **环境检查**:确保项目已初始化 npm (`npm init -y`) #### 🔧 目录结构示例 ``` my-project/ ├── index.html ├── src/ │ └── main.js └── libs/ ├── three.min.js # 核心库 └── three.module.min.js # ES6 模块版本 ``` #### ️ 增强开发体验 1. 在 VSCode 中安装扩展: - *Three.js Snippets* - *GLSL Lint* 2. 配置 `jsconfig.json` 启用严格类型检查: ```json { "compilerOptions": { "checkJs": true, "lib": ["es6", "dom"] } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值