strip-comments

Strip line and/or block comments from a string. Blazing fast, and works with JavaScript, Sass, CSS, Less.js, and a number of other languages.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
(TOC generated by verb using markdown-toc)
Install
Install with npm (requires Node.js >=10):
$ npm install --save strip-comments
What does this do?
Takes a string and returns a new string with comments removed. Works with line comments and/or block comments. Optionally removes the first comment only or ignores protected comments.
Works with:
- ada
- apl
- applescript
- c
- csharp
- css
- hashbang
- haskell
- html
- java
- javascript
- less
- lua
- matlab
- ocaml
- pascal
- perl
- php
- python
- ruby
- sass
- shebang
- sql
- swift
- typscript
- xml
Usage
By default all comments are stripped.
const strip = require('strip-comments');
const str = strip('const foo = "bar";// this is a comment\n /* me too *\/');
console.log(str);
// => 'const foo = "bar";\n'
For more use-cases see the tests
API
strip
Strip all code comments from the given input
, including protected comments that start with !
, unless disabled by setting options.keepProtected
to true.
Params
input
{String}: string from which to strip commentsoptions
{Object}: optional options, passed to extract-commentsline
{Boolean}: iffalse
strip only block comments, defaulttrue
block
{Boolean}: iffalse
strip only line comments, defaulttrue
keepProtected
{Boolean}: Keep ignored comments (e.g./*!
and//!
)preserveNewlines
{Boolean}: Preserve newlines after comments are strippedreturns
{String}: modified input
Example
const str = strip('const foo = "bar";// this is a comment\n /* me too */');
console.log(str);
// => 'const foo = "bar";'
.block
Strip only block comments.
Params
input
{String}: string from which to strip commentsoptions
{Object}: passopts.keepProtected: true
to keep ignored comments (e.g./*!
)returns
{String}: modified string
Example
const strip = require('..');
const str = strip.block('const foo = "bar";// this is a comment\n /* me too */');
console.log(str);
// => 'const foo = "bar";// this is a comment'
.line
Strip only line comments.
Params
input
{String}: string from which to strip commentsoptions
{Object}: passopts.keepProtected: true
to keep ignored comments (e.g.//!
)returns
{String}: modified string
Example
const str = strip.line('const foo = "bar";// this is a comment\n /* me too */');
console.log(str);
// => 'const foo = "bar";\n/* me too */'
.first
Strip the first comment from the given input
. Or, if opts.keepProtected
is true, the first non-protected comment will be stripped.
Params
input
{String}options
{Object}: passopts.keepProtected: true
to keep comments with!
returns
{String}
Example
const output = strip.first(input, { keepProtected: true });
console.log(output);
// => '//! first comment\nfoo; '
.block
Parses a string and returns a basic CST (Concrete Syntax Tree).
Params
input
{String}: string from which to strip commentsoptions
{Object}: passopts.keepProtected: true
to keep ignored comments (e.g./*!
)returns
{String}: modified string
Example
const strip = require('..');
const str = strip.block('const foo = "bar";// this is a comment\n /* me too */');
console.log(str);
// => 'const foo = "bar";// this is a comment'
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- code-context: Parse a string of javascript to determine the context for functions, variables and comments based… more | homepage
- extract-comments: Uses esprima to extract line and block comments from a string of JavaScript. Also optionally… more | homepage
- parse-code-context: Fast and simple way to parse code context for use with documentation from code comments… more | homepage
- parse-comments: Parse code comments from JavaScript or any language that uses the same format. | homepage
Contributors
Commits | Contributor |
---|---|
82 | jonschlinkert |
4 | tunnckoCore |
2 | mk-pmb |
1 | kgryte |
1 | briandipalma |
1 | epicoxymoron |
1 | XuluWarrior |
Author
Jon Schlinkert
License
Copyright © 2019, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on November 13, 2019.