我试图为Meteor重新包装Gibberish.js,到目前为止还没有任何工作。该包具有自己的npm依赖项。我首先尝试将其加载为git子模块。我在package.js中有这个:
Npm.depends({
"connect": "2.25.7",
"serve-static": "1.5.3",
"uglify-js": "2.4.15"
});
Package.onUse(function(api) {
api.versionsFrom('1.1.0.2');
api.addFiles('build/gibberish.js', ['client','server']);
});
它抱怨Gibberish.init()
不是一个功能,所以我猜它没有看到包裹。那么我意识到gibberish-dsp是它自己的npm包,所以我试图通过npm包含它。我用过这个:
package.js
Npm.depends({
"connect": "2.25.7",
"serve-static": "1.5.3",
"uglify-js": "2.4.15",
"gibberish-dsp": "2.3.2"
});
Package.onUse(function (api) {
api.addFiles([
'lib/gibberish.js',
], ['server']);
api.export([
'gibberish'
]);
LIB / gibberish.js:
juice = Npm.require('gibberish-dsp');
这给了它一个回调错误。我猜Meteor不能用第三方软件包进行回调?!所以我尝试了meteorhacks:npm
,这显然修复了回调错误。我试过这个:
if (Meteor.isServer) {
console.log('server');
var gibberish = new Gibberish();
var init = Async.wrap(init);
gibberish.init();
}
});
我的/ packages /文件夹中有我的乱码子模块,我得到SyntaxError: Unexpected token Y
。
更新:SyntaxError指的是"错误的HTML"在乱码包中。显然它试图将其作为Meteor HTML文件(即没有DOCTYPE等)阅读。我不想改变包中的每个文件!
我可能已经花了大约20个小时。为什么加载外部库这么难?!?!我还可以做些什么?我想要像流星一样,但我已经准备放弃了。
答案 0 :(得分:0)
您是否已将其添加到Meteor版本的活动包列表中?除非在那里列出,否则不会使用该包。
$ meteor add user:gibberish
答案 1 :(得分:0)
我不想更改套餐中的每个文件!
为什么不呢?
更新:您似乎已接受this answer:
最简单(非打包)的方法是使用它
client/compatibility
。
- 删除您正在使用的所有自制软件包以尝试使其工作 (或重新开始一个新项目)。
- 在the recommended way.
中构建gibberish.js
- 将
醇>gibberish.js
复制到client/compatibility
。您现在可以访问客户端代码中的Gibberish对象。