Problem
I’ve configured my JS project for scanning, but some of the files are not showing up in the coverage report.
When enhanced logging is enabled, errors similar to the following appear in the log:
ERROR CIA: Failed to create signature for '/path/to/File.js'. Error 'Unexpected token (30:2)' (className=BuildDiffProcess)
Overview
This happens when some of the contents of the JS files trying to be scanned contain an unexpected formatting style.
This usually happens when code is transpiled or compiled, but can happen for all JS files regardless of compilation or transpilation!
Solution
Babylon (BabelJS)
Define the correct Babylon plugins used by your project:
Identify which Babylon plugins are in use in your project from the following list: https://babeljs.io/docs/en/plugins
Add the
--babylonPlugins
parameter with the name of the Babylon plugin to theslnodejs build
command. Some examples:slnodejs build <...> --babylonPlugins estree
slnodejs build <...> --babylonPlugins jsx