phoenix-powerNode.jsの開発環境

shelljsは、Shell上からNodeコマンドなどを実行しやすくしてくれるツールです。読み込むことで特定の書き方ができます。また、shelljs-nodecliは、shelljsと連携してNodeの楽な書き方ができるという感じのshelljs拡張機能です。eslintは、言わずと知れたjsの構文チェックツール。

各ツールの基本的な使い方を紹介します。

1
2
3
4
5
6
7
8
9
10
$ npm i shelljs-nodecli eslint shelljs
$ npm init --scope=linclark
$ sed -i "" '$d' package.json
$ echo '
,"bin": {
    "eslintt": "bin/test.js"
  }
}' >> package.json
$ mkdir bin
$ vim bin/test.js

こんな感じでパスにリンクを貼って実行できます。ここではeslinttコマンドを発行。

次に、shelljs-nodecliを使ってeslintによるfoo.jsのチェックを行います。

bin/test.js
1
2
3
4
5
#! /usr/bin/env node
var nodeCLI = require("shelljs-nodecli");
var version = nodeCLI.exec('eslint', '-v', {silent:true}).output;
console.log(version);
nodeCLI.exec('eslint', 'foo.js');

設定ファイルは、通常はProject Rootに置きます。node_modules/shelljs-nodecli/.eslintrcもチェックしておきましょう。

.eslintrc
1
2
3
4
5
6
{
    "parser": "esprima",
    "rules": {
        "semi": "error"
    }
}

foo.jsはわざと末尾の;を忘れて作ります。そして、チェックを開始。想定通りエラーを出します。

1
2
3
4
5
6
7
8
9
10
11
$ npm link
$ echo 'var foo = "foo"' >> foo.js
$ eslintt
/path/to/foo.js
  1:5   error  'foo' is defined but never used  no-unused-vars
  1:16  error  Missing semicolon                semi

2 problems (2 errors, 0 warnings)

$ echo ';' >> foo.js
$ eslintt