# file-comments-webpack-plugin

> A webpack plugin that checks whether the specified comment headers are included in the source files of a project and fixes it automatically.

Latest version **1.2.10** (published 2025-09-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install file-comments-webpack-plugin
pnpm add file-comments-webpack-plugin
yarn add file-comments-webpack-plugin
bun add file-comments-webpack-plugin
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.2.10 |
| Published | 2025-09-19 |
| First published | 2023-04-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 12.13.0 |
| Dependencies | 0 |
| Unpacked size | 15.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Saurabh Sharma |
| Maintainers | saurabhiam |
| Keywords | file-comments-webpack-plugin, file-comments, comment header, comment header autofix, file comments webpack plugin, front-end, web, webpack, plugin, building tool |

## Links

- npm: https://www.npmjs.com/package/file-comments-webpack-plugin
- Repository: https://github.com/saurabhiam/file-comments-webpack-plugin
- Issues: https://github.com/saurabhiam/file-comments-webpack-plugin/issues
- npm.io page: https://npm.io/package/file-comments-webpack-plugin

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.2.10 (latest) — 2025-09-19
- 1.2.8 — 2023-04-20
- 1.2.6 — 2023-04-12
- 1.2.4 — 2023-04-12
- 1.2.1 — 2023-04-06

## README

# file-comments-webpack-plugin

A Webpack plugin that **checks** whether the specified **comment headers** are included in the **source files** of a project and fixes it automatically.

- It can **insert the comment headers** to a file in case it does not exist.
- It can **replace the comment headers** of a file in case it is slightly different than the target, after matching pattern.
- It can **prepend the specified comment headers** if a different comment is detected in a file.
- **Only the selected file extensions** will be **processed**.
- Specific **folders, files and paths can be ignored**.
- Comments can be specified in a **file or as a template string**.
- It can **automatically fix the comments** or warn users about it.

## Installation

```bash
npm i -D file-comments-webpack-plugin
```

## Configuration

```js
const  FileCommentsPlugin = require('file-comments-webpack-plugin');

const  config = {
    plugins: [
        new FileCommentsPlugin({
            templateText: `/**
            * Copyright © {{year}} {{author}}. All rights reserved.
            */`,
            fix: true,
            templateVariables: {
                year: new Date().getFullYear(),
                author: 'Saurabh Sharma'
            },
            onFileCommentMismatch: "replace", //'prepend' or 'replace'
            commentRegex: /\/\*\*[\s\S]*?Copyright[\s\S]*?All rights[\s\S]*?\*\//
        });
    ]
}
module.exports = config;
```

#### With source directory and ignore patterns

```js
const  FileCommentsPlugin = require('file-comments-webpack-plugin');

const  config = {
    plugins: [
        new FileCommentsPlugin({
            srcDir: './src',
            ignorePatterns: ['**/package.json', '**/*.test.{js,jsx}'],
            templateText: `/**
            * Copyright © {{year}} {{author}}. All rights reserved.
            */`,
            fix: true,
            templateVariables: {
                year: new Date().getFullYear(),
                author: 'Saurabh Sharma'
            },
            onFileCommentMismatch: "replace", //'prepend' or 'replace'
            commentRegex: /\/\*\*[\s\S]*?Copyright[\s\S]*?All rights[\s\S]*?\*\//
        });
    ]
}
module.exports = config;
```

#### With template file

```js
const  FileCommentsPlugin = require('file-comments-webpack-plugin');

const  config = {
    plugins: [
        new FileCommentsPlugin({
            templateFile: './config/copyright-template.txt', //templateFile has more precedence over templateText
            fix: true,
            templateVariables: {
                year: new Date().getFullYear(),
                author: 'Saurabh Sharma'
            },
            onFileCommentMismatch: "replace", //'prepend' or 'replace'
            commentRegex: /\/\*\*[\s\S]*?Copyright[\s\S]*?All rights[\s\S]*?\*\//
        });
    ]
}
module.exports = config;
```

## Options

| Option                  | Value                  | Default value                                                                    | Description                                                                                                     |
| ----------------------- | ---------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `srcDir`                | `<source dir>`         | [`webpack context`](https://webpack.js.org/configuration/entry-context/#context) | The source directory to process files in.                                                                       |
| `fix`                   | `Boolean`              | `false`                                                                          | Whether to automatically fix missing or mismatched comments.                                                    |
| `extensions`            | `Array<string>`        | `['js', 'jsx', 'ts', 'tsx', 'json', 'css', 'scss']`                              | The file extensions to include.                                                                                 |
| `ignorePatterns`        | `Array<string>`        | `[]`                                                                             | The source directory to process files in.                                                                       |
| `templateFile`          | `<file path>`          |                                                                                  | The template file path to use.                                                                                  |
| `templateText`          | `String`               |                                                                                  | The template text to use.                                                                                       |
| `templateVariables`     | `Object`               | `{}`                                                                             | The template variables to use.                                                                                  |
| `onFileCommentMismatch` | `"prepend"\|"replace"` | `"prepend"`                                                                      | How to handle mismatched comment.                                                                               |
| `commentRegex`          | `RegExp`               | `//`                                                                             | The regular expression for matching comments to perform the action on comment mismatch (onFileCommentMismatch). |

---
_Source: https://npm.io/package/file-comments-webpack-plugin · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
