【发布时间】:2016-02-02 18:46:07
【问题描述】:
我正在尝试为 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 指的是乱码包中的“Bad HTML”。显然它试图将它作为 Meteor HTML 文件读取(即没有 DOCTYPE 等)我不想更改包中的每个文件!
我可能已经为此花费了大约 20 个小时。为什么加载外部库这么难?!?!我还可以做些什么?我想喜欢 Meteor 但我准备放弃了。
【问题讨论】:
标签: javascript node.js meteor