JavaScript道場感想戦

「JavaScript 道場 2013 秋」を開催します | Sapporo.js

  • 普段それほどJavaScriptを書いてないし、特にサーバーサイドはほとんどやったことないし、お題は何かわからないしで結構不安だったので、一応勉強してから当日に臨みました
サーバサイドJavaScript Node.js入門
清水俊博, 大津繁樹, Jxck, 小林秀和, 佐々木庸平, 篠崎祐輔, 高木敦也, 西山雄也
KADOKAWA/アスキー・メディアワークス
発行日: 2012-10-29
対応フォーマット: PDF
  • 何か今日やりたいことはありますかとメンバーに聞いたら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まで行けなかったので後日やってみた。これ簡単だし便利だわ。結果的にテストが失敗するところも確認できてよかった。

https://travis-ci.org/iakio/jsdojo2013