lxyuma BLOG

開発関係のメモ

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するようになる。

うーん。

なんなんだこれは?