Javascript 在Meteor中使用具有依赖项的NPM包
我正在尝试在我的meteor项目中使用NPM包,但是我在使它工作时遇到了一些问题 我尝试使用的模块是这个包。 我已经为meteor添加了包,并将packages.json文件更改为:Javascript 在Meteor中使用具有依赖项的NPM包,javascript,meteor,npm,Javascript,Meteor,Npm,我正在尝试在我的meteor项目中使用NPM包,但是我在使它工作时遇到了一些问题 我尝试使用的模块是这个包。 我已经为meteor添加了包,并将packages.json文件更改为: { "steam": "0.6.8", "adm-zip": "0.4.7", "buffer-crc32": "0.2.5", "bytebuffer": "3.5.4", "bufferview": "1.0.1", "long": "2.2.3",
{
"steam": "0.6.8",
"adm-zip": "0.4.7",
"buffer-crc32": "0.2.5",
"bytebuffer": "3.5.4",
"bufferview": "1.0.1",
"long": "2.2.3",
"protobufjs": "4.0.0-b2",
"ascli": "1.0.0",
"optjs": "3.2.1-boom",
"colour": "0.7.1"
}
(为了澄清上述内容,它是steam包及其所有依赖项和依赖项的依赖项)
现在我已经尝试在meteor应用程序中使用这个包,代码位于-/server/streambot/streambot.js
var Steam = Meteor.npmRequire('steam');
var bot = new Steam.SteamClient();
bot.logOn({ // (fake credentials)
accountName: 'a',
password: '123456789',
authCode: 'aaa55',
shaSentryfile: 'aaa'
});
我希望它会像那样容易,但随后错误开始了
var-cryptedSessKey=
require('crypto').publicEncrypt(fs.readFileSync)(\uu dirna TypeError:
对象#没有方法“publicEncrypt”
我发现是steam和dependencie包的require()
函数给了我这些错误。如果我用Meteor.npmRequire()
替换require()
,我只需在其中一个NPM包中使用next require()
函数
有没有办法在不将每个require()函数更改为Meteor.npmRequire()的情况下解决此问题
即使我应该这样做,最好的方法是什么
我对NPM和Meteor世界也很陌生,这种工作流程是我应该采用的方式吗?或者我有什么可以改进的地方吗?更新:截至2016年7月,Meteor 1.4使用Node 4.4.7,它支持流NPM包(需要4.1.1+) Steam NPM插件不能与Meteor一起使用 NPM包页()说明: 注意:仅支持Node.jsv0.12和io.js v1.4 Meteor使用的是旧版本的NodeJS。例如Meteor v1.0.4(2015年3月17日)使用的是v0.10.36
Meteor的发布周期非常短,但考虑到Meteor v0.8.1.1(2014年5月1日),我怀疑节点v0.12是否会很快得到支持正在使用节点v0.10.26。您是否尝试只向
程序包添加steam
?json
?-NPM应该自己解决依赖项。是的,我有。错误保持不变。我正在运行一个示例,使用相同的程序包。json
和您在问题上输入的两行代码片段,我没有收到任何错误,包括meteor您使用的是哪个版本?meteor--version
,或者这两行之间有更多的代码吗?请将conde放入meteor.startup(function(){})中
检查是否仍然发生这种情况requires@Ethaan我忘了提到我后来也使用了登录命令。我编辑了该命令的帖子。伪造或合法凭据都会给出相同的错误。这似乎是节点版本问题,steam只支持nodev 0.12
和meteorv1.1使用节点:0.10.36(从0.10.33开始)
检查