/rollup-plugin-userscript-metadata

一个使 Rollup.js 可以通过 JSON 生成 Userscript 头信息的插件 | A Rollup.js plugin that enables automatic generation of userscript metadata from JSON

Primary LanguageTypeScriptMIT LicenseMIT

rollup-plugin-userscript-metadata

A Rollup.js plugin that enables automatic generation of userscript metadata from JSON.

Quick Start

Installation

npm

npm install --save-dev rollup-plugin-userscript-metadata

pnpm

pnpm install --save-dev rollup-plugin-userscript-metadata

yarn

yarn add --dev rollup-plugin-userscript-metadata

Usage

Create 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==

Using with @rollup/plugin-terser

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"
        })
    ]
};