我正在嘗試在我的流星項目中使用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