three.js作为node.js上的模块

时间:2013-11-19 04:10:30

标签: node.js module compiler-errors three.js

我正在尝试在名为可视化的文件中构建可视化,其中我已将所有内容都转换为模块导出函数。

我有一个名为app的文件,当我运行它时,调用那些函数(比如drawSomething),我得到这样的错误:

$ node app.js

THREE.WebGLRenderer 59dev

C:\用户\布赖恩\文件\可视\ node_modules \ 3个\ th​​ree.js所:18671 var _canvas = parameters.canvas!== undefined? parameters.canvas:document.c                                                                     ^ ReferenceError:未定义文档     在新的THREE.WebGLRenderer(c:\ Users \ Brian \ documents \ visualizer \ node_modules \ 3个\ th​​ree.js所:18671:70)     在对象。 (C:\用户\布莱恩\文件\可视\ visualization.js: 15:16)     在Module._compile(module.js:456:26)     at Object.Module._extensions..js(module.js:474:10)     在Module.load(module.js:356:32)     在Function.Module._load(module.js:312:12)     在Module.require(module.js:364:17)     at require(module.js:380:17)     在对象。 (C:\用户\布赖恩\文件\可视\ app.js:19:18)     在Module._compile(module.js:456:26)

我不确定这意味着什么以及为什么会出现这样的问题。如果有人熟悉在node.js中使用three.js,请给我一些指示。

谢谢, 布赖恩

P.S。 - 我是以非常黑客的方式做这件事,这很糟糕。但是,我理解如何使用three.js在HTML文件中呈现内容,我只是不确定将所有内容转换为函数并从另一个.js文件中调用它们的过程。

1 个答案:

答案 0 :(得分:0)

需要从浏览器环境运行Three.js和WebGL才能工作。您的错误似乎是缺少document,这是一个特定于浏览器的全局变量,引用当前的HTML DOM等。我认为除了documentwindow之外,node.js是缺少像canvas这样的Three.js使用的各种其他浏览器对象/ API,最重要的是,WebGL画布上下文。

如果有一些可用于node.js的库来支持画布,那么您可能只使用CanvasRenderer。另外,命令行可编写脚本的浏览器PhantomJS应该能够支持CanvasRenderer,并且可以挂钩到node.js.一个名为SlimerJS的类似项目也应该支持WebGLRenderer,但是它使用的是一个完整的浏览器。