1. 为什么 npm 安装的 three 默认不是 UMD 版本?
npm 安装的 three.js 包,主要面向现代前端工程化开发(比如用 webpack、vite、rollup、ESM import 等),所以:
node_modules/three/build/three.module.js 和 three.module.min.js 是 ES Module 版本(只能用 import 方式加载,不能直接用 <script src=…>)。
three.js 源码和大部分 examples 也都是模块化写法。
npm 包里默认没有 UMD 版的 three.min.js,因为 UMD 主要是给“直接用 <script src=…>”的传统页面用的。
2. UMD 版本 three.min.js 从哪里来?
UMD 版本是 three.js 官方专门为“直接用 <script src=…>”的场景打包的,通常只在 CDN(如 jsdelivr、unpkg)上提供。
你可以在 three.js 的 GitHub release 页面、CDN 或 three.js 官网下载到 UMD 版本。
3. npm 包和 UMD 版本的区别
版本类型 适用场景 是否自动挂载 window.THREE
ES Module (module.js) 现代前端工程(import … from 'three') 否
UMD (three.min.js) 传统页面 <script src=…> 是
4. 你以后怎么选?
如果你用 npm + webpack/vite 等现代前端工具开发,用 import 方式加载 three.js。
如果你是传统 PHP/HTML 页面,直接 <script src=…>,就必须用 UMD 版本 three.min.js。
5. 总结
npm 安装的 three.js 主要是模块化(ESM)版本,不适合直接 <script src=…>。
你要用 UMD 版本 three.min.js,需手动下载或用 CDN。
你现在用 UMD 版本,window.THREE 就有了,特效就能正常显示!
转载请注明:三五二萌文网 » 为什么 npm 安装的 three 默认不是 UMD 版本