我正在尝试使用Meteor和Three.js构建一个应用程序,但遗憾的是将这两个部分绑定在一起并不成功。
Three.js是客户端WebGL可视化的库;不知怎的,我无法在Meteor中正确引用它。
如果我将.js放在/ public中,或者我收到错误,那么Meteor根本找不到它,或者我收到错误:ReferenceError:在app / Three.js:2:47
中未定义self
当我将它放在任何其他文件夹中时。
我真的不知道为什么...... 谢谢!
答案 0 :(得分:1)
答案 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