- せっかくなのでメモを残しておこう
- 環境はWindows7 Pro SP1
- 始めるにあたって、参考にした記事は[これ][link-1]
[link-1]:http://qiita.com/hiconyan/items/9805657866720dac7acc
この順番にやりゃいい
やったことを詳しく知りたかったら次項以降にやったこと書いてます
- node.jsをインストール
- 以降、管理者権限で実行したコマンドプロンプトでコマンドを打ち込む
npm install -g hubot coffee-script yo generator-hubot
mkdir c:\node\mybot
- 注意!!フォルダ名をhubotにするとインストールに失敗します
cd c:\node\mybot
-
yo hubot
hubotからの質問は全部Enter bin\hubot.cmd
- 起動後の動作確認は
scripts/example.coffee
に適当に書いて下さい - おわり
最初にnode.jsをインストール
記事ではnodistを使っていたが、せっかくなので公式からインストールする。
https://nodejs.org/ja/
この記事を参考にしました。
hubotをインストール
最初に参考にしてた[この記事][link-1]をまた見直してhubotをインストールする。
ただし、nodistではなく公式のnode.jsを使ったのでフォルダ名を変える。
今回はC:\node\hubot
というフォルダを作った。
しかし、このフォルダ名を変える悪手によりすぐ後ではまってしまう・・・
hubotのインストールに失敗
インストール中に下記のエラーが出てしまった。
255 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "hubot" "hubot-scripts" "hubot-diagnostics" "hubot-help" "hubot-heroku-keepalive" "hubot-google-images" "hubot-google-translate" "hubot-pugme" "hubot-maps" "hubot-redis-brain" "hubot-rules" "hubot-shipit" "--save"
256 error node v6.9.5
257 error npm v3.10.10
258 error code ENOSELF
259 error Refusing to install hubot as a dependency of itself
260 error If you need help, you may report this error at:
260 error <https://github.com/npm/npm/issues>
261 verbose exit [ 1, true ]
適当にググってみたら公式のGitHubにissueがあったので参考にしてnpm install -g node-gyp
を叩いてnode-gypをインストールしてみたが変わらず。
もうちょっと真面目にググってみて、別の方法を発見
しかし、管理者権限で実行しても無駄。
プロキシなんて元々設定してないから触らないで良い。
で、八方塞がりになってしまった。
さらにググって、このサイトに助けられた。
どうやら可能性2に該当してたっぽい。
フォルダ名がプロジェクト名やらパッケージ名に当てはまるのかよく分からないけど、もしかしてと思ってフォルダ名を変えたらやっとインストール出来た。
hubotの実行に失敗
c:\node\mybot\bin
に移動後、hubot.cmd
と叩いた所、指定されたパスが見付かりません
とのエラーが出てしまった。
そろそろ心折れそう。
環境変数が問題なのかなーと思い、PCを再起動させてみた。
変わらず。。。
ググってもよく分からないので、hubot.cmd
の中身を見てみた。
@echo off
call npm install
SETLOCAL
SET PATH=node_modules\.bin;node_modules\hubot\node_modules\.bin;%PATH%
node_modules\.bin\hubot.cmd --name "mybot" %*
ん?相対パスで書いてる。
どうやらc:\node\mybot\bin
フォルダまで移動して実行していたことが原因だったらしい。
一つ上のフォルダに戻ってbin\hubot.cmd
を実行したら無事に動作しました。
動作確認
hubot ping
と打ってもPONG
と返してくれない。なぜ!!!
どうやら、scripts/example.coffee
が空だから何も動かないっぽい。
なんでだろ。デフォルトで応答用のスクリプトくらい用意しておいてほしいんだけど・・・
というわけで、確認したいのでサンプルを参考にしてスクリプトに手を加えてみた。
保存時はUTF-8で保存するのを忘れずに
robot.hear /unko/i, (res) ->
res.send "うんこ!!!"
清々しい内容。
一度hubotをexit
コマンドで落として再度bin\hubot.cmd
で起動。
その後でmybotちゃんにunko
と言うと、ちゃんとうんこ!!!
と返してくれて童心に戻れた。
疲れた。Slackで使いたいとかはまた後日やろ。
hubotのインストールに3時間くらいかかったけど、少しは賢くなった気がするからまぁいっか。