Hubot (具体的には hubot-hipchat) を使用しており、https://github.com/scriby/asyncblockノード モジュールを使用したいと考えています。hubot でノード モジュールをインポート/要求する正しい方法は何ですか?
hubot をインストールした場所 (~/hubot) に cd して実行しました
hubot/packages.json を編集して、hubot-hipchat,asyncblock を依存関係セクションに追加しました。
"dependencies": {
"hubot-hipchat": ">= 1.0.4",
"hubot": "2.1.4",
"hubot-scripts": ">=2.0.4",
"optparse": "1.0.3",
"asyncblock": "2.0.8"
}
次に、scripts/test.coffee スクリプトで次のことを行います。
asyncblock = require('asyncblock')
hubot を起動すると、次のエラーが表示されます: エラー エラー: モジュール '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サーバーでシステムコマンドを実行しようとしています:
asyncblock((flow) ->
exec('node -v', flow.add())
result = flow.wait()
msg.send result
)
編集: NODE_PATH 環境変数を次のように設定すると、機能します。
env NODE_PATH="/usr/lib/nodejs:/usr/share/javascript:/home/ubuntu/hubot/node_modules"
慣例により、hubot/node_modules を参照しないのはなぜですか??