Static code analysis: JSHint
As stated in the first chapter, JavaScript is not a compiled language, but running the code (as in the case of automated testing) is not the only way to check for errors.
A whole class of tools is able to read source files, interpret them, and look for common errors or bad practices without needing to actually run the source files.
A very popular tool is JSHint—a simple binary that can also be installed through NPM, as follows:
npm install --save-dev jshint jsxhint
You can see that we are also installing JSXHint, another tool to perform static analysis of JSX files. It is basically a wrapper around the original JSHint while performing the JSX transformations.
If you remember from the previous chapter, JSXTransformer doesn't change the line numbers, so a warning in a given line number on a JavaScript file will be in the same line number in the original JSX file.
To execute them is very simple, as follows:
./node_modules/.bin/jshint . ./node_modules/.bin/jsxhint .
However...