Removes comments from JSON/JavaScript, CSS/HTML, CPP/H, etc.
npm install decommentdecomment
=========
Removes comments from JSON/JavaScript, CSS/HTML, CPP/H, etc.
$ npm i decomment
`
Testing
`
$ npm test
`
Testing with coverage:
`
$ npm run coverage
`
Usage
`js
const decomment = require('decomment');
const code = 'var t; // comments';
decomment(code); //=> var t;
`
For build systems / task runners see [gulp-decomment] and [grunt-decomment].
Features
* Removes both single and multi-line comments from JSON, JavaScript and CSS/Text
* Automatically recognizes HTML and removes all from it
* Does not change layout / formatting of the original document
* Removes lines that have only comments on them
* Compatible with CSS3, JSON5 and ECMAScript 6
The library does not support mixed content - HTML with JavaScript or CSS in it.
Once the input code is recognized as HTML, only the HTML comments will be removed from it.
Performance
For JSON and JavaScript this library uses [esprima] to guarantee correct processing for regular expressions.
As an example, it can process AngularJS 1.5 Core
in under 100ms, which is 1.1MB ~ 30,000 lines of JavaScript.
API
$3
This method first checks if the code starts with <, as an HTML, and if so, all entries
are removed, according to the options.
When the code is not recognized as HTML, it is assumed to be either JSON or JavaScript. It is then parsed
through [esprima] for ECMAScript 6 compliance, and to extract details about regular expressions.
If [esprima] fails to validate the code, it will throw a parsing error. When successful, this method will remove
// and /**/ comments according to the options (see below).
##### options.safe ⇒ Boolean
* false (default) - remove all multi-line comments
* true - keep special multi-line comments that begin with:
- entries from it according to the options.
$3
Returns End-of-Line string used within the text, based on the occurrence frequency:
* \n - for Unix-encoded text
* \r\n` - for Windows-encoded text