Another solution is to use a JS parser, such as Acorn [1] to parse the JS.
It can be used as a command line tool (passing the --silent) option to it,
which makes it only return the exit code which we can use to check whether
the syntax was valid or not.

The bigger question, probably, is that neither this not my previous
solution prints out the errors in the syntax, so they're not very useful to
locate errors.

A relevant discussion happened on an issue filed on the JSHint GitHub repo
[2] which asked for a syntax check only mode. It was declared a wont-fix
[3]. However, we still might be able to disable most of the rules and try
for a minimal configuration, which might just get us what we want.

[1] https://github.com/marijnh/acorn#command-line-interface
[2] https://github.com/jshint/jshint/issues/808
[3] https://github.com/jshint/jshint/issues/808#issuecomment-20763023

Vivek Ghaisas
(polybuildr)

On Tue, Sep 8, 2015 at 2:47 PM, Vivek Ghaisas <[email protected]> wrote:

> I Googled for npm packages that check JS syntax and came across a package
> called syntax-checker [1] which checks several languages. I looked at the
> source and found the lines where it checks the syntax of each language [2].
> For languages other than JS, it just uses the interpreter/compiler with a
> flag passed to it. However, for JS, it passes the file to UglifyJS [3] and
> redirects its output to /dev/null. Presumably, UglifyJS complains when it
> sees invalid JS.
>
> Probably not the best way to do it, but certainly a solution.
>
> [1] https://github.com/xianhuazhou/syntax-checker/
> [2]
> https://github.com/xianhuazhou/syntax-checker/blob/c68c562d8/lib/syntax-checker.js#L18-L28
> [3] https://github.com/mishoo/UglifyJS2
>
> --
> Vivek Ghaisas
> polybuildr
>
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to