A Rollup.js plugin that enables automatic generation of userscript metadata from JSON.
npm install --save-dev rollup-plugin-userscript-metadatapnpm install --save-dev rollup-plugin-userscript-metadatayarn add --dev rollup-plugin-userscript-metadataCreate a rollup.config.mjs configuration file and import the plugin:
import metadata from 'rollup-plugin-userscript-metadata';
export default {
    input: 'src/index.js',
    output: {
        dir: 'output',
        format: 'iife'
    },
    plugins: [
        metadata({
            metadata: "src/metadata.json"
        })
    ]
};Create a metadata.json metadata file like this:
{
  "name": "my-plugin",
  "version": "1.0.0",
  "match": [
    "https://example.com/",
    "https://example.net/"
  ]
}It will generate the metadata into your output file and auto-align.
// ==UserScript==
// @name    my-plugin
// @version 1.0.0
// @match   https://example.com/
// @match   https://example.net/
// ==/UserScript==Here's how you can modify your rollup.config.mjs file to include the rollup-plugin-terser plugin and preserve
the metadata:
import metadata from "rollup-plugin-userscript-metadata"
import teaser from "@rollup/plugin-terser"
export default {
    input: 'src/index.js',
    output: {
        file: 'dist/index.min.js',
        format: 'iife'
    },
    plugins: [
        terser({
            format: {
                comments: [
                    "/\\/\\/ ==UserScript==\\n(?:\\/\\/ @[^\\n]+\\n)*\\/\\/ ==\\/UserScript==/\n/m"
                ]
            }
        }),
        metadata({
            metadata: "src/metadata.json"
        })
    ]
};