「JavaScript 道場 2013 秋」を開催します | Sapporo.js
- 普段それほどJavaScriptを書いてないし、特にサーバーサイドはほとんどやったことないし、お題は何かわからないしで結構不安だったので、一応勉強してから当日に臨みました
- 何か今日やりたいことはありますかとメンバーに聞いたらAngularJSとのことだったので、お題はFizzBuzzゲームを選択
- 個人的にはTravis CIをやってみたかったので、調べつつ余裕があればという感じで
- AngularJSやるのは結構久しぶりだったので、HTMLを作ってもらっている間に色々調べる。karmaの設定ファイルがよくわからない。後日気が付いたけどkarma initというコマンドを使えばよかった
- karmaインストールするとPhantomJSもはいるんだ
- FizzBuzzゲームは、与えられた数字に対してユーザーがFizz/Buzz/FizzBuzz/それ以外を選択して正解かどうかを判定する。いわゆるFizzBuzzよりもちょっと難易度が上がることになる。その辺をじっくりやりたい気もしたけど時間がないのでスルー
- 途中までできたところでもうちょっとAngularJSっぽいことをやりたいなと思ったので、履歴を下に追加することを思いついた
- しかし最後のコミットでテストを壊していて、「テストは動きます(通るとは言っていない)」という状態になってしまったことは残念
- まあとにかく無事に終わってよかったです
- 実際のところ自分はkarma.conf.jsとpackage.jsonと.gitignoreくらいしか書いてないです
- 作りながら色んなアイディアが出てくるのも楽しいけど、JavaScript道場としてはもうちょっと違う感じの、開発過程や小さ目のノウハウのものも面白いかもしれない
- やはり他人がコードを書いているところを見るのは楽しい。正直僕は師範の演舞を見てるだけでもいいくらい
さて、npm testでkarmaを動かそうと思ったんだけど、package.jsonに
"scripts": { "test": "node_modules/.bin/karma start config/karma.config.js" },
だと、Windowsで動かなかった。
'node_modules' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 npm ERR! weird error 1 npm ERR! not ok code 0
パスのセパレータをバックスラッシュにすれば動く。どうするのが普通なのだろう。とhttps://github.com/isaacs/npm/blob/master/lib/utils/lifecycle.jsまで追って気が付いたけど、ここで$PATHの先頭にnode_modules/.bin/とか追加してるな。なのでそもそもディレクトリを書く必要ないんだ。
"scripts": { "test": "karma start config/karma.config.js" },
言われてみれば確かに。bundle exec的なものだと考えれば当たり前だ。なんでこんな勘違いしたんだっけと思ったら、karmaのドキュメントに書いてあったのか。Karma - Travis CI
時間内にはTravis CIまで行けなかったので後日やってみた。これ簡単だし便利だわ。結果的にテストが失敗するところも確認できてよかった。