使用TypeScript+Parcel运行Planck.js Testbed报错:planck.testbed is not a function
Planck.js Testbed 与 Parcel 搭配使用的解决方案
错误原因
默认安装的planck-js核心包不包含Testbed调试模块,planck.testbed并不是主库导出的方法,直接调用会触发planck.testbed is not a function错误。
解决步骤
1. 调整导入方式
修改TypeScript代码,单独导入Testbed模块:
import * as planck from "planck-js"; import testbed from "planck-js/dist/testbed"; testbed(function (t) { // 创建物理世界 const world = planck.World(); console.log(world.getGravity()); // 必须返回物理世界供Testbed渲染 return world; });
2. 添加页面容器
创建或修改HTML入口文件(比如public/index.html),为Testbed提供挂载的DOM容器:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Planck.js Testbed</title> </head> <body> <div id="testbed"></div> </body> </html>
3. 调整Parcel构建配置
修改package.json中的脚本,将HTML文件设为Parcel的入口(确保Testbed能正确挂载到DOM):
{ "scripts": { "dev": "parcel public/index.html", "build": "parcel build public/index.html" } }
4. 安装类型定义(可选)
如果需要TypeScript类型提示,安装Planck.js的类型包:
npm install --save-dev @types/planck-js
完成以上步骤后,重新运行npm run dev,Testbed即可正常启动并渲染物理世界。
内容的提问来源于stack exchange,提问作者8Observer8
相关产品推荐
相关产品推荐

