2021-01-07 23:16:07 +08:00

58 lines
1.8 KiB
Markdown

# rollup-plugin-banner2
## Introduction
Rollup plugin to prepend content before bundled js code.
## Why
`rollup` itself contains `output.banner` option.
The difference between this plugin and the `output.banner` parameter provided by the rollup is that the banner will not be cleaned up - for example by `rollup-plugin-uglify` plugin, the output file will not contain the `output.banner` parameter you set. `rollup-plugin-banner2` solves this problem.
There is another banner plugin: https://github.com/yingye/rollup-plugin-banner . Unfortunately, it looks **NOT MAINTAINED** for quite some time now. The main differences are described below.
## Usage
Install the plugin with NPM:
```
npm install --save-dev rollup-plugin-banner2
```
Add it to your rollup configuration:
```js
import banner2 from 'rollup-plugin-banner2'
export default {
plugins: [
banner2(() => `
/**
* rollup-plugin-banner2
*/
`)
]
}
```
## Comparison with `rollup-plugin-banner`
- `banner2` supports sourcemaps
- `banner2` supports adding different banner to different chunks based on `ChunkInfo` (for more info see https://rollupjs.org/ )
- `banner2` does not support file path option that loads a file content and uses that as a banner. It should be easy enough to call `fs.readFileSync` yourself
- `banner2` does not support injecting values from `package.json` to banner via `<%= pkg.author %>` etc.
- `banner2` does not support adding comments not-commented banner content for now
- `banner2` does not add JS comments to every banner
The missing features could be added if someone actually needs them.
## API
```ts
banner2(resolveBanner, options)
```
The `resolveBanner` function returns a banner as `string`,
or possibly a `Promise` resolving a `string`
For more details see the [typescript definition](index.d.ts)