怖話でjsで文字幅を知る必要があったところ、こちらで神コード発見しました。

東アジアの文字幅 (East Asian Width) の判定 - 中途

コメント欄でお伺いを立ててますが、昔の記事なのでご覧になってないかも。余りにも神だったのでnpmのパッケージにしました。

東アジアの文字幅って何?とかは長くなるので下記参照。

東アジアの文字幅 - Wikipedia

類似のに比べてコードがコンパクト、そしてcharCodeAtではデフォルト対応してないサロゲートペアに対応しているのが素敵です。勝手にnpmにすんな!と言われたら直ぐ消します。すみません。

komagata/eastasianwidth · GitHub

結局、consoleとは違って等幅フォントにしても全角は半角の2倍の幅というわけじゃないのでWebでの用途(怖話)には使えませんでしたが・・・。

Install

$ npm install eastasianwidth

Usage

var eastasianwidth = require('eastasianwidth');
console.log(eastasianwidth.eastAsianWidth('₩')) // 'F'
console.log(eastasianwidth.eastAsianWidth('。')) // 'H'
console.log(eastasianwidth.eastAsianWidth('뀀')) // 'W'
console.log(eastasianwidth.eastAsianWidth('a')) // 'Na'
console.log(eastasianwidth.eastAsianWidth('①')) // 'A'
console.log(eastasianwidth.eastAsianWidth('ف')) // 'N'

coffee-scriptはnpmで入るからいいだろということでhomebrewからhomebrew-altに移動したらしいです。なのでnodeを入れてソースからnpmを入れる。

% brew install node
% curl http://npmjs.org/install.sh | sh
% npm install coffee-script -g

元のjsがある場合はjs2coffeeでcoffee化する。

% npm install js2coffee -g
% js2coffee foo.js > foo.coffee

guardやjitterで変更を検知してcoffeeをコンパイルする。titaniumで使われてるスクリプト言語はpythonなのでGuardfileがリポジトリにあると発狂する人がいる(?)のでjitterを使ってみました。(via @yagi_)

% npm install jitter -g
% jitter coffee Resources

coffeeディレクトリ以下のファイルに変更があると、同じ名前のjsがResources以下に出来る。