Meteor.js不能引用Three.js

时间:2012-11-21 19:08:32

标签: three.js meteor

我正在尝试使用Meteor和Three.js构建一个应用程序,但遗憾的是将这两个部分绑定在一起并不成功。

Three.js是客户端WebGL可视化的库;不知怎的,我无法在Meteor中正确引用它。

如果我将.js放在/ public中,或者我收到错误,那么Meteor根本找不到它,或者我收到错误:

  

ReferenceError:在app / Three.js:2:47

中未定义self

当我将它放在任何其他文件夹中时。

我真的不知道为什么...... 谢谢!

4 个答案:

答案 0 :(得分:1)

我认为你需要创建一个流星包。我建议你看一下这些问题以及它们提供的链接。

Creating a meteor d3 package

How to build a Meteor package

答案 1 :(得分:1)

所有陨石包都不适合我,所以我采取了另一种方法。你仍然可以写一个流星包。或者您可以单独使用您的项目结构。在流星文档中,您可以阅读:

“子目录中的文件在父目录中的文件之前加载,因此最先加载最深子目录中的文件(在lib之后),并且最后加载根目录中的文件(除了main。*)。” p>

所以我做的是,我在客户端文件夹的最深子目录中创建了一个lib文件夹,并将我的three.js文件放在那里。在文件的开头,您可以找到全局定义:

var THREE = THREE || {REVISION:'60'};

之后,您需要将其添加到窗口对象中,如下所示:

window.THREE = THREE;

多数民众赞成。现在你可以使用three.js,如果你需要一些来自three.js的其他库,你只需要将它们放在比你的three.js更高的目录中。

(抱歉我的英文,我知道这很糟糕)

答案 2 :(得分:0)

我遇到了同样的问题。最终我意识到有人已经在大气中收拾了Three.js:

https://atmosphere.meteor.com/package/three.js

只需安装陨石并运行

mrt add three.js

这会将three.js包添加到您的项目中。解决了!

答案 3 :(得分:0)

在玩了几天Meteor之后,我了解到没有必要总是为你想要使用的库提供包。我不能说这个解决方案适用于所有事情,但它允许我使用three.js而没有任何hackery。

three.min.js文件放在client/compatibility内,并在名为main.js的客户端文件夹中创建一个新文件,在main.js文件中输入以下代码:

Meteor.startup(function() {
    // your three code here.
});

中提琴!这应该完全正常。我正在使用three.js r71和meteor v1.1.0.2