Skip to content

AMoo-Miki/comment-stripper

 
 

Repository files navigation

Comment stripping loader for webpack

comment-stripper is a webpack loader that strips away all or some of the comments while processing the source files.

Getting started

More than likely, you have your project configured and building correctly and you are here just to clean up your bundles. If that is not the case, "God save the Queen, man".

Installation

yarn add comment-stripper --dev

or

npm install comment-stripper --save-dev

Configuration

Simply add comment-stripper to your loaders in webpack.config.js:

module.exports = { 
  // ...
  module: {
    rules: [
      { 
        test: /\.scss$/, 
        use: ['css-loader', 'comment-stripper', 'sass-loader'] 
      }
    ]
  }
};

Options

By default, comment-stripper removes all unimportant comments and hoists the protected ones, dropping duplicates, to the top of the output. This behavior can be modified:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'css-loader',
          {
            loader: 'comment-stripper',
            options: {
              safe: true
            }
          }, 
          'sass-loader',
        ]
      }
    ]
  }
};
safe
Type Default
boolean true

When true, unimportant comments are removed and one copy of the protected ones, identified by an exclamation mark following the opening (e.g. /*! and //!), is hoisted to the top of the output.

Setting it false will result in removal of all comments, important and unimportant.

keepProtected
Type Default
boolean false

When true, the safe option is overridden so unimportant comments are removed and all protected comments are left in place.

When false, the behavior is driven by the safe option.

language
Type Default
string javascript

A value of js, ts, javascript, typescript, sass, or less strips blocks of /* */ comments and single-line // ... comments.

A value of css strips blocks of /* */ comments; CSS doesn't support single-line // ... comments.

A value of html or xml strips blocks of <!-- --> comments.

line
Type Default
boolean true

When false, single-line // ... comments would NOT be stripped away.

block
Type Default
boolean true

When false, blocks of /* */ and <!-- --> comments would NOT be stripped away.

API

comment-stripper can also be used on its own to strip out comments.

const { strip } = require('comment-stripper');

const output = strip(
  'const foo = "bar";// this is a comment\n /* me too */', 
  { safe: true }
);
// Do something with output

About

Strip block comments or line comments from JavaScript code.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.7%
  • HTML 2.3%