私はhubot(特にhubot-hipchat)を使用しており、https://github.com/scriby/asyncblockノードモジュールを使用します。ハブトでノードモジュールをインポート/要求する正しい方法は何ですか?hubotのnode_pathの設定方法
IのCD私はhubot(〜/ hubot)をインストールし、
編集hubot/packages.jsonは、依存関係のセクションにasyncblockをhubot-hipchatを追加しました。どこへ
"dependencies": {
"hubot-hipchat": ">= 1.0.4",
"hubot": "2.1.4",
"hubot-scripts": ">=2.0.4",
"optparse": "1.0.3",
"asyncblock": "2.0.8"
}
私はその後、私のスクリプト/ test.coffeeスクリプトで次の操作を行います
asyncblock = require('asyncblock')
私はhubotを起動すると、私はエラーを取得:ERRORエラー:モジュールのasyncblock」を見つけることができません
〜/ hubot/node_modules/asyncblockが存在します。それでは、私がやろう:
require.paths.push('/home/ubuntu/hubot/node_modules')
今、私は、エラーを見つけることができません得ることはありませんが、私は新しいものを取得する:
ERROR Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
私が間違って何をしているのですか?
私はちょうど私がhubotを実行しているUbuntuのサーバー上のシステムコマンドをexecししようとしている:
asyncblock((flow) ->
exec('node -v', flow.add())
result = flow.wait()
msg.send result
)
編集: 私は、次のNODE_PATHのENVのVARを設定した場合、それは動作します:
env NODE_PATH="/usr/lib/nodejs:/usr/share/javascript:/home/ubuntu/hubot/node_modules"
なぜ慣習では、hubot/node_modulesを見ないのですか?
を使用して正しい上記のタスクを完了した後、私はあなたの質問の一部に答えることができます: 'require.paths'は、ノード0.5で削除されました。 'require.paths.push'を使う記事やソースコードは古くなっています。私はあなたがノード0.6.xにいると仮定しますか? –
ノード-v:v0.6.17。うん、私はそのdeprecated /削除を認識しています。私を混乱させるのは、モジュールが./node_modulesで見つからないのです。なぜなら、そのディレクトリ内の他のモジュール(hubot-hipchatなど)がうまく見つかるからです。 – rynop