0.0.4 • Published 9 months ago

comment-stripper v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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
TypeDefault
booleantrue

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
TypeDefault
booleanfalse

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
TypeDefault
stringjavascript

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
TypeDefault
booleantrue

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

block
TypeDefault
booleantrue

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