2016-01-04 13 views
7

nodemonを使用してJavaScriptをリントすることはできますか?私はビルドツールを使用していません。 gulpやgruntを使用し、ノードとnpmの使用を最大限にしたい。ノーデモンを使用して糸くずをかける方法は?

The output from nodemon can be piped。私はeslintを使って変更されたファイルを埋め込むためにこれを使いたいと思います。

は、ここに私のpackage.json

{ 
 
    "name": "app", 
 
    "version": "0.0.1", 
 
    "private": true, 
 
    "scripts": { 
 
    "start": "nodemon server.js", 
 
    "lint": "eslint" 
 
    }, 
 
    "dependencies": { 
 
    "MD5": "*", 
 
    "clean-css": "*", 
 
    "express": "~4.9.0", 
 
    "express-handlebars": "~2.0.1", 
 
    "express-redis-cache": "*", 
 
    "foundation-sites": "~5.5.3", 
 
    "fs-extra": "~0.8.1", 
 
    "node-rest-client": "~1.5.1", 
 
    "node-sass": "*", 
 
    "path": "*" 
 
    }, 
 
    "devDependencies": { 
 
    "babel-eslint": "^4.1.6", 
 
    "eslint": "^1.10.3", 
 
    "eslint-config-airbnb": "^2.1.1", 
 
    "eslint-config-airbnb-es5": "^1.0.8", 
 
    "eslint-plugin-react": "^3.13.1", 
 
    "nodemon": "~1.8.1", 
 
    "parallelshell": "~2.0.0", 
 
    "watch": "~0.17.1" 
 
    } 
 
}

私はこれを試してみましたです。しかし、それは動作しません。

 "scripts": { 
    "start": "nodemon({ script: 'server.js' }).on('restart', function() {console.log('nodemon started');}).on('crash', function() {console.log('script crashed for some reason');});", 
    "lint": "eslint" 
    }, 
+1

テキストエディタで直接処理するのではなく、プロセスマネージャで実行時に糸くず処理を実行する特別な理由はありますか? – Seonixx

答えて

20

あなたは、コードを保存すると、あなたのテストを実行するnodemonexecオプションを使用することができます。ここでは例です:

nodemon server.js --exec 'npm run test && node' 

これはnpm run test && node server.jsを実行するnodemonの原因となりますし、すべてのテストが正常に実行されるまで、それはサーバを起動しません。

+0

なぜこれが受け入れられないのですか答えは私を超えています。これはまさにあなたがOPを探している答えです。 – shriek

+0

私は窓で働いていないようです。 – Oskar

-4

リント処理は純粋に開発プロセスです。 Nodemonは、サーバーの実行に使用され、ビルドツールには接続されていないが、アプリケーションの実行に使用されるツールです。したがって、答えは「いいえ」です。あなたは、grunt、gulpなどの開発自動化のための適切なツール、または純粋なNPMスクリプト(package.jsonファイル内)を使用する必要があります。

プロジェクトが複雑で、多くの段階と多くのバンドルがある場合は、自動化ツールを使用することをおすすめします。しかし、lintingの場合は、package.jsonの1行を用意するだけです。

"scripts": { 
    "lint": "eslint --fix src test", 
} 

そして、 'npm run lint'コマンドで実行してください。

適切に設定された.eslintrcファイルを使用することで、コンソールコマンドとエディタ/ IDEの両方でコードを実行することができることを覚えておいてください(ほとんどすべての一般的なIDEにはeslintのプラグインがあります)。適切なeslintrcファイルをeslintを設定し、作成について

詳細情報はここで見つけることができます http://eslint.org/docs/user-guide/configuring

+0

私はjavascriptファイルを監視するために開発でnodemonを使用しています。私は本番環境で使用するつもりはなく、dev-dependenciesにリストされています。私はこれはノーデモンの正しい使用と私のアプリのすべてのjavascriptファイルを監視するので、私は正しいコードを書いているかどうかを監視するためにそれを使用する方法が必要があると思う。だからこそ、私は糸を引くためにそれを拡張したいのです。 – DrEarnest

+1

私の答えはより適切に洗練されました:)主なnodemonの使用は、開発中にファイルが変更されたときにサーバーを実行/再起動することですが、ビルドには使用されません。eslinterの出力をコンソールに追加したいのであれば(おそらく私の意見では実用的ではありません)、nodemonのconfigファイルで 'events restart' configフラグを使い、そこでeslintを追加することができます。 – SzybkiSasza

+0

ノーデモンを使っているものとまったく同じことをするには、通常、グラントやギャルプのようなものを使用します。さらに、ファイルを自動的に処理して圧縮したり、必要なアセットをダウンロードしたり、ファイルをリントすることができるという利点があります。 –

3

私はStandard.jsを糸くず用に使用しています。スクリプトを使用してnodemonと動作させることができます。私はnpm run devを実行すると

"scripts": { 
    "lint": "standard", 
    "dev": "nodemon ./app --exec \"npm run lint && node\"" 
    "start": "nodemon ./app" 
}

、私が行った変更を監視しLINTEDされます。私はこれをWindowsで、PowerShellを使ってテストしました。

関連する問題