mjson-serverというnpmのお手伝いしてる
最近,同僚がmjson-serverというプロダクトを作ってくれたんで,お手伝いというか何個かprを送ってる.
元々その方が作ってたmjsonというJSONにコメントがあっても除去してくれるというCLIをローカルでWebアプリとして,使えるようにしたものです.
主にpr送った機能としては,
JSON.parse()
のエラーを表示していたのをJSONLint
のエラーにしてエラー部分を見やすくした- エラーが起きた場合にどの行でエラーが起きたかをシンタックスハイライトするようにした
くらいですが,使いやすいと思うのでよろしければ使ってみてください.
contributorsに加えてもらったので,宣伝してみました.
Node.vimがステキ
どうもあんまり話題になっていない感あるんですが,Node.vimというVimプラグインが大変ステキな感じです.
そこそこ開発も活発な感じです.
機能としては,ざっくりこんな感じ.(README読めば分かるんですけど)
- 標準の
gf
とかC-w f
とかするとrequire()
のモジュールに飛ばしてくれる [I
をメソッドにカーソル当てて入力するとそのファイルはもちろん,require()
内からでも検索してプレビューウィンドウに表示- 最近できた機能ですが
:NEdit module/path
とするとそのファイルを開いてくれる
などなどカユいところに手が届いてるプラグインです.
Node.js + Vim使ってる人にはオススメの逸品.
そろそろBuster.js使うの一旦休止か…
先日家のMacを買い替えまして.TimeMachine経由で全部バックアップを復元したんで,時間がかかる以外はそれ程苦労無く移行できたわけですが.
そういえば…と思いましてnpm update -g
したら何度やっても途中で止まるなあ…止まるなあ…と思ってたんです.
npm ERR! cb() never called! npm ERR! not ok code 0
でこれ出る前後を色々見ていったらどうも原因はBuster.jsにある模様.Buster.jsをnpm rm
したらちゃんとアップデートできるようになりました.
npm-debug.logとか色々眺めてたらどうやらdependenciesの一つがコケてるようで,ググったら公式MLで同じ症状の人達が結構いました.
https://groups.google.com/forum/#!topic/busterjs/P8OeXmyRjj8
原因はやっぱdependenciesがBuster.js側で古いものを参照してるせいで,そのnpmの作者が古いものをアップしなくなった模様.
この人が言うように,Buster.jsが最後に(npmで更新されたの)去年の年末だったりするので,まあdependenciesを上げてもらうと嬉しいなあ.
https://groups.google.com/d/msg/busterjs/P8OeXmyRjj8/A1X0DNhitM8J
当座困ってるのが,上述の通り色々アップデートさせようとしてBuster.jsをアンインストールしてしまったんで,自分のプロダクトの更新が 無理なこと.一旦諦めて,mochaとexpect.jsとかにしようかと考えてる.
gatekeeper.jsなるものを作った
https://github.com/Layzie/gatekeeper.js
これだけ見ると何のこっちゃ?と思いますが。Vanilla.js用かつスマホブラウザ用のevent delegate専用ライブラリです。
今の案件で必要なんでCoffeeScriptで作ってみました。と、言っても一からオリジナルという訳ではなくVimeoの中の人が作ったgator.jsというライブラリのソースを参考に、モバイルブラウザにいらなそうな部分削ったり、趣味に合わない部分を変更したり…という事してます。READMEにも書いてますが。
一番悩んだ点は…これライセンス表記とかどうすんの?って所でした。ここに一応gator.jsをベースにしてるっていうの書いて、元がApache ライセンスだったんで踏襲してたりしますが。
最終的には、CoffeeScriptからの派生プロジェクトのLiveScriptとかを参考にしました。
forkしちゃえばまあ…という感じでしょうけど、コードは参考にしつつ、別言語(?)に移植して名前が違うとかいう場合はこれで良いんだろうか。ちょっと心配ですな。
使い方自体はほとんどjQueryとかと変わらずに
Gk(document).on('click', '.hoge a', function(e) { console.log(e.innerHTML); });
みたいな感じです。gator.jsのドキュメントとほぼ変わらないです。(GatorがGkになってるくらい) 一応、スマホで見れるデモはついてます。カッコ悪いけど。あと、テスト作りたいけど、どうしよう。ブランチは作ってあるけど何もしてないわ…。
名前の由来は、まあ親のDOMでイベントの門番みたいなもんだなーといって安易に付けました。S○NYの工作員とは関係がな…うわなにをするやめろ。
リポジトリ作った後にググってみたんですが、どうやらパスワードフォーム関係のJavaScriptのライブラリが既にあったりして、名前決める前に調べりゃ良かった…と若干の後悔をしたまま公開しました。
ニーズとしては非常にニッチなんじゃないかと思うのですが、ご紹介まで。(jQueryとかzepto.jsとかあれば、delegate付いてくるし)