comment-eraser
Removing comments from JavaScript files has never been this easy.
Please consider following this project's author, Sina Bayandorian, and consider starring the project to show your
Table of Contents
Install
Install with npm:
$ npm install --save comment-eraser
Usage
const { erase } = require('comment-eraser');
// reads eraser.config.json - falls back to DEFAULT_CONFIG if not specified
// removes comments from specified .js files
erase();
const { eraseFromString } = require('comment-eraser');
// config
const config = {
type: 'both',
code: jsCodeString
};
const [commentsRemoved, removedCharsCount, elapsedTime] = eraseFromString(config);
console.log(commentsRemoved, removedCharsCount, elapsedTime);
API
erase
Erases comments from the specified files - Read Configuration and Interactive Mode for more.
Params
-
configPath
: String - optional - default is'eraser.config.json'
Returns
-
{ filePath, outputPath, commentsRemoved, removedCharsCount, elapsedTime }[] | undefined
: { String, String, String, Number, TimeStamp }[ ] | undefined
Notes
- note that when
interactive
is set totrue
the logs will no longer be available to you and the function will returnundefined
Example
// note that this function needs no argument to be passed to it
// since it reads and utilizes eraser.config.json
const { erase } = require('comment-eraser');
const logs = erase();
console.log(logs);
eraseFromString
Erases comments from the given string
.
Params
-
code
: String -
config
: Object-
type
: 'both' | 'inline' | 'block' -
excludePatterns
: String[ ] - specifies comment patterns not to be excluded - default is[]
- note that each pattern must be a valid
RegExp
pattern or an error will be thrown -
output
: { path: String, file: String, append: Boolean }-
path
: String - default is''
-
file
: String - default is'output.js'
-
append
: Boolean - default isfalse
-
-
Returns
-
[commentsRemoved, removedCharsCount, outputPath, elapsedTime]
: [ String, Number, (String | null), TimeStamp ]
Notes
- if no
output
object is passed then the result won't be written to a file - in order to use the default
output
config pass{}
as theoutput
option - if two function calls have the same
output
option:-
append
set totrue
- all results will be appended to the file -
append
set tofalse
- only the result of the last function call will be written to the file
-
Example
// note that in this example no new file is created
// as no config or output option is passed down to the function
const { eraseFromString } = require('comment-eraser');
const sampleString = '// a comment \n sample js code';
const [ commentsRemoved, removedCharsCount, elapsedTime ] = eraseFromString(sampleString);
console.log(commentsRemoved, removedCharsCount, outputPath, elapsedTime);
Configuration
utilized by the erase function
eraser.config.json
-
type
: 'both' | 'inline' | 'block' specifies the comment type to be erased-
both
: default - all comments -
inline
: inline comments only -
block
: block comments only
-
-
include
: String | String[ ] - glob pattern - js files to be included - default is./**/*
-
exclude
: String[ ] - glob pattern - js files to be excluded - default is[]
-
writeToOutput
: Boolean - specifies whether to write the output string into specific files - default istrue
- based on
replace
,outputDir
,postfix
- based on
-
replace
: Boolean - specifies whether to replace the file's content after removing the comments or not - default isfalse
- will override
outputDir
andpostfix
if specified
- will override
-
outputDir
: String - specifies the directory in which the new files are going the be created - default isno-comments
-
postfix
: String - specifies the postfix to be added to the new files generated after the comment removal process - default is-no-comments
-
excludePatterns
: String[ ] - specifies comment patterns not to be excluded - default is[]
- note that each pattern must be a valid
RegExp
pattern or an error will be thrown
- note that each pattern must be a valid
-
interactive
: Boolean - activates interactive mode if set totrue
- default isfalse
Interactive Mode
In this mode a temp file named prelog
is created in which you can specify which files to include or not include one by one and then hit Enter
to continue the process based on the prelog
file
- set
interactive
totrue
to activate ineraser.config.json
- only available when using the erase function
-
=y
: include file - default for all files -
=n
: exclude file - note that the
prelog
file will be removed after the process is finished
Exmaple - prelog
sample.js=y
sample-2.js=n
Cli Tool
eraser-cli - the cli tool for this package easily integrate the comment-eraser into your build process or install it globally and use it wherever you want