我正在尝试在我的流星项目中使用NPM包,但是在启动它时遇到了一些问题。在流星中使用依赖项的NPM包
我试图使用的模块是steam包。 我已经添加了meteorhacks:npm包流星,并改变了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"
}
(澄清以上,它的蒸汽包所有的依赖和的依赖依赖)
现在我试着在我的流星应用程序使用此代码位于使用包 - /服务器/ steambot/steambot.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(__dirna TypeError: Object # has no method 'publicEncrypt'
我想通了,这是一个的给我的这些错误的蒸汽和dependencie包的require()
功能。如果我将require()
替换为Meteor.npmRequire()
,我只需使用其中一个NPM软件包中的next require()
函数。
有没有办法解决这个问题,而不改变每个要求()功能Meteor.npmRequire()
?
即使我应该什么是最好的方法?
我对NPM和流星世界也很陌生,这种工作流程是我应该做的和/或是否有任何改进,我可以提出或记住?
你有没有尝试在'packages.json'中添加*只有*'steam'? - NPM应该自行解决依赖关系。 – 2015-04-01 18:21:49
是的,我有。错误保持不变。 – Thark 2015-04-01 18:26:51
我正在运行一个具有相同'package.json'和2行代码片段的示例,并且我没有收到任何错误,您使用的流星版本是什么? 'meteor --version',还是你有更多的代码除了这两行?把这个conde放在'Meteor.startup(function(){})'里面,检查是否仍然发生了这个require – Ethaan 2015-04-01 18:34:25