タイトルが長い。
charaい先輩のブログ、更新が止まってて心配だ
— トンボ (@tom__bo_CS) November 15, 2015
書くこと無いなーと思ってぼんやりしていたら生存を心配されてしまったのでハートビート的に何か書くことにしました。 しかし、書くことがあったら書いているのでいっちょ何か作るかーと思ってJSのプロジェクトテンプレートをつくりました(´・_・`)
js-startについて
勢いに乗ってtextlintでREADMEの日本語もlintされるようにしました。
ディレクトリー構成
. ├── lib ├── node_modules ├── src └── test ├── fixtures └── unit
src/index.js
にes6で書くと、そこからbabel
+ browserify
でlib/bundle.js
にまとめてくれる。
テストはmocha
で書いてtest/
以下に置けばespower-babelify
がpower-assert
を使えるようにしつつes6を変換してくれる。
test/unit
にはPhantomJSに依存しないテストを置く。
テスト用のHTMLやJSONはtest/fixtures
に置いて
// html window.__html__[`test/fixtures/${page}.html]; // json(拡張子がつかないので注意) window.__json__[`test/fixtures/${json}];
のようにするとPhantomJS上でロードできる。
npm scripts
npm run build
:browserify -t [ babelify ]
でlib/bundle.js
を生成。npm run watch
:watchify -t [babelify]
でファイル監視を開始。ファイル保存時にlib/bundle.js
を生成。lint:js
:src
,test
以下にeslint
を実行。lint:npm
:npm-check-updates
でpackage.json
に書いてあるライブラリーのアップデートを調べる。lint:text
:textlint
でREADME.md
の日本語を検査する。lint
:lint:*
をnpm-run-all -p
で並列実行。mocha
: PhantomJSに依存しないユニットテストを実行する。karma
:mocha
のテストをPhantomJS
上で実行するためのkarma start
を実行する。
まとめ
とここまで書きましたが、わりと普通な感じです。istanbulとか入ってないですし。 JSのプロジェクトテンプレートって無限に作られている気がしますが、その時のライブラリの流れとかどのくらいのものを書くのか・どういうテストを書くのか、みたいなのに個人の好みが重なって無限にバリエーションがあると思います。おそらく全部入りのをコピペしても使いこなせないので自分好みのテンプレートをdotfilesのようにGithub上にあげてコツコツ育てていくのが良さそうですね。