daikiueda.hatenablog.com

stream.on( data, throttle( chunk => { throw unch } ╭( ・ㅂ・)و ̑̑ グッ !! ε٩( ・ω・ )۶з

node.jsのモジュールの、開発着手時の基本構成。

node.jsのモジュールを作る際に、いつも置いている設定ファイルやディレクトリの構成が決まってきたので、 リポジトリにまとめてみた。

上記の内容がまかなう役割は、以下のとおり。

  • テストにつかうモジュールの指定。
    • ひとまず、mocha, chai, istanbul
  • テストコマンド(npm test)の実行内容の指定(ついでにカバレッジ計測も)。Windows環境でも動くようにした。
  • CIサービスの動作設定の指定。
    • ひとまずTravis CIでテスト。結果のカバレッジレポートを、coverallsとcodeclimateに送信する。

以下のコマンドで、リポジトリの内容をプロジェクトフォルダに配置できる。
(手作業でダウンロードしたって良いけれど)

$ curl -sL https://github.com/daikiueda/node-module-scaffold/tarball/master | tar xz --strip=1 

ファイルを配置したあとの手順を、以降にメモ書きしておく。

package.json(モジュールの情報)を整える。

対話形式で、nameやdescriptionなどを埋めていく。

$ npm init

テストにつかうモジュールを、npmコマンドでインストールする。

$ npm up -D

この時、使用するバージョンをpackage.jsonに保存するため、以下の点に注意する。

  • バージョン情報を更新するため、npm install ではなく npm update ( npm up ) を実行する。
  • バージョン保存の対象は開発用のモジュールなので、指定するオプションは --save ( -S ) ではなく --save-dev ( -D )とする。

以上で、package.jsonの内容が整う。
つくるモジュールの本体で使うモジュールは、適宜 npm i -Sで追加しよう。

ローカル開発環境でのテストの実行。

テスト

$ npm test

テスト+カバレッジ計測

$ npm run test-cov

上記コマンドの実行内容は、package.jsonで以下のように指定している。

"scripts": {
  "test": "node ./node_modules/mocha/bin/mocha --recursive -R spec",
  "test-cov": "node ./node_modules/istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha -- --recursive -R spec"
},

注意点は、以下の2つ。

  • Windows環境でも動作するよう、コマンドの最初に実行プログラム(node)を明記する。
  • CIサービス上でも動作するよう、mochaやistanbulはプロジェクト以下に配置されるcliで呼び出す。

CIサービスの動作設定。

.tavis.yml

language: node_js

node_js:
  - "0.10"

script:
  npm run test-cov

after_success:
  - cat ./coverage/lcov.info | ./node_modules/codeclimate-test-reporter/bin/codeclimate.js
  - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js --verbose

addons:
  code_climate:
    repo_token: (要・個別設定)