comment-stripper
v0.0.4
Published
Webpack loader that strips comments which can be used on its own too
Downloads
50,246
Maintainers
Readme
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