Javascript - I'm not seeing my JS files show up in the build scan

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:

  1. Identify which Babylon plugins are in use in your project from the following list: https://babeljs.io/docs/en/plugins

  2. Add the --babylonPlugins parameter with the name of the Babylon plugin to the slnodejs buildcommand. Some examples:

    1. slnodejs scan <...> --babylonPlugins estree

    2. slnodejs scan <...> --babylonPlugins jsx