我在使用带有Meteor应用程序的fabric.js库时遇到了麻烦,遗憾的是我无法完全将其添加到我的应用程序中,更不用说调用它了。最简单的娱乐活动如下:
> mrt create test
> cd test
> mkdir client
> curl -o ./client/all.js http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.2.0/fabric.all.min.js
> mrt
转到localhost:3000会显示以下控制台输出:
Uncaught TypeError: Cannot read property 'object' of undefined all.js:4074
global.fabric.global.fabric all.js:4074
(anonymous function) all.js:4936
(anonymous function)
all.js的第4074行是第二行:
var fabric = global.fabric || (global.fabric = { }),
extend = fabric.util.object.extend,
capitalize = fabric.util.string.capitalize,
clone = fabric.util.object.clone,
toFixed = fabric.util.toFixed,
multiplyTransformMatrices = fabric.util.multiplyTransformMatrices;
我很确定我做错了(与织物或流星的问题相反),但我不知道在哪里。我也尝试将all.js文件放入我的公共目录中,虽然它没有抛出相同的TypeError,但它确实使得结构变量似乎在我的任何地方都不可用代码。
将fabric.js正确加载到我的应用程序中的任何帮助都会很棒。
答案 0 :(得分:9)
请您尝试将库文件放入client / compatibility子目录中。在Meteor中导入的任何javascript文件都包含在闭包中,您无法轻松访问全局范围。客户端/兼容性是不会对库应用闭包的地方。
http://docs.meteor.com/#structuringyourapp您可以在此处找到更多关于导入库问题的内容。