styledoccoコマンド打ったら、エラーが出て前に進めなかった。
大量のファイルがあると起こる問題だったっぽい。困ったのでメモ。
エラーメッセージ
$ styledocco -n "styleduide" stylesheets/ child_process.js:927 throw errnoException(process._errno, 'spawn'); ^ Error: spawn EMFILE at errnoException (child_process.js:980:11) at ChildProcess.spawn (child_process.js:927:11) at exports.spawn (child_process.js:715:9) at preprocess (/usr/local/lib/node_modules/styledocco/cli.js:136:10) at Object.css (/usr/local/lib/node_modules/styledocco/node_modules/async/lib/async.js:532:23) at /usr/local/lib/node_modules/styledocco/node_modules/async/lib/async.js:467:25 at /usr/local/lib/node_modules/styledocco/node_modules/async/lib/async.js:86:13 at Array.forEach (native) at _forEach (/usr/local/lib/node_modules/styledocco/node_modules/async/lib/async.js:26:24) at Object.async.forEach (/usr/local/lib/node_modules/styledocco/node_modules/async/lib/async.js:85:9)
Error: spawn EMFILE
一度に開けるファイルの上限数にひっかかっているっているエラーでした。
ulimit -aで、一度に開けるファイル数の上限がいくつに設定されているかを確認する。
$ ulimit -a -t: cpu time (seconds) unlimited -f: file size (blocks) unlimited -d: data seg size (kbytes) unlimited -s: stack size (kbytes) 8192 -c: core file size (blocks) 0 -v: address space (kbytes) unlimited -l: locked-in-memory size (kbytes) unlimited -u: processes 709 -n: file descriptors 256
nの項目がファイル数の上限値。この場合は256に設定されている。
Mac OS 10.9.1(Mavericks)での初期値は256のよう。
ulimit -n 1000で1000まで広げてあげる。-nで設定してもメッセージが何も返ってこないので、-aで再度確認する。
$ ulimit -n 1000 $ ulimit -a -t: cpu time (seconds) unlimited -f: file size (blocks) unlimited -d: data seg size (kbytes) unlimited -s: stack size (kbytes) 8192 -c: core file size (blocks) 0 -v: address space (kbytes) unlimited -l: locked-in-memory size (kbytes) unlimited -u: processes 709 -n: file descriptors 1000
ここで$ styledocco -n "styleduide" stylesheets/を実行すると"docs"ディレクトリが作成されて、ドキュメントが生成される。
メモその2 $ styledocco -n "hogehoge"でつけられるのはディレクトリ名ではない
$ styledocco -n [プロジェクト名] [ターゲットディレクトリ]
$ styledocco -n "mogemoge" styleseets
って実行したら、mogemogeってディレクトリが作成されるのかと思ってたけど勘違いだった。
作成されるディレクトリはdocs、プロジェクト名はドキュメントのhtmlのヘッダーに書かれる。