yeomanでbackbone+express+mongoDBのfullstackな環境を一発で構築する話
node.jsで環境作ろうと思って、yeomanを入れるも、
サーバーサイドからクライアントサイドまでfullstackで準備されたものが無い。
generator-backboneはclientだけ
generator-expressはbackendだけ
これじゃ、困る。
自分で作らないといけなくて面倒くさい。
普段rails使ってたので、fullstackなframeworkがどれだけありがたかったか、と改めて思う。
※そもそもrails慣れると、こういう環境は全部自動で提供されるものと思ってしまうのも、問題かもしれないが...
generator-marionette
そこで、これ見つけた。
https://github.com/mrichard/generator-marionette
backbone用のlibraryで、marionetteというのがあり、
そのgeneratorなのだが、
サーバー側に、express+socket.io入ってて、
DB接続ODMとして、mongoose入ってて、
フロント側は、backbone.js(with marionette)とbootstrap入ってて、
test周りは、mochaとchaiとsinonが入ってる
※他に便利/定番ライブラリ入ってる
欲しかったのはこれ。
入れてみた。
※ちなみに、fullstackでangularで良ければ、似たようなgeneratorは別にあるみたい。
install
基本は、公式のgithubの通り。
ただ、そのままだと、grunt testでerrorになった。
追記2:generator-marionetteを使ったチュートリアルを書いた=> http://lxyuma.hatenablog.com/entry/2013/10/04/001331
※追記1:以下の2件のエラー直してpull reqしてマージされました。 なので、もう、以下のエラーでないです。 https://github.com/mrichard/generator-marionette/pull/15
$ grunt test ## connect:test ...(略)... Running "connect:test" (connect) task Verifying property connect.test exists in config...ERROR >> Unable to process task. Warning: Required config property "connect.test" missing. Use --force to continue. Aborted due to warnings.
connect.testがねーと。Gruntfile.jsの以下の部分を
// todo fix these grunt.registerTask('test', [ ・・・略・・・ 'connect:test', ・・・略・・・ ]);
connect:testをconnect:testserverに直すと、通過する。
なんで、こんなのが残ってる?
mocha
次にmochaのエラーが出る。
Running "connect:test" (connect) task Started connect web server on localhost:1234. >> No "mocha" targets found. Warning: Task "mocha" failed. Use --force to continue.
これも、さっきのGruntfile.jsの
// todo fix these grunt.registerTask('test', [ ・・・略・・・ 'mocha', ・・・略・・・ ]);
mochaをexec:mochaにすれば、testするようになる。
うーん。
なんなんだこれは?