Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Meteor中使用具有依赖项的NPM包_Javascript_Meteor_Npm - Fatal编程技术网

Javascript 在Meteor中使用具有依赖项的NPM包

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",

我正在尝试在我的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",
    "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
和meteor
v1.1使用节点:0.10.36(从0.10.33开始)
检查