@yiero/vite-plugin-scriptcat-require-self
v1.0.4
Published
A vite plugin to inject locally file reference for web script like TamperMonkey or ScriptCat
Maintainers
Readme
Vite Plugin ScriptCat Require Self
English / 中文
Features
Automatically injects references into UserScript headers for Web Script like TamperMonkey or ScriptCat, referencing the locally built file: // @require <dist-bundle.js>.
Installation
npm install @yiero/vite-plugin-scriptcat-require-self -D
# or
yarn add @yiero/vite-plugin-scriptcat-require-self -D
# or
pnpm add @yiero/vite-plugin-scriptcat-require-self -DConfiguration
| Parameter | Type | Description | Default |
| ---------- | --------- | ------------------------------------------------------------ | ------- |
| isInsert | boolean | Whether to inject references, can be controlled via environment variables | true |
Usage
Add the plugin to your vite.config.js:
import { defineConfig } from 'vite'
import requireSelfPlugin from '@yiero/vite-plugin-scriptcat-require-self'
export default defineConfig( ( env ) => {
/*
* Get the current build environment
* */
const isDevelopment = env.mode === 'development';
plugins: [
// Other plugins...
// If in development environment, outputs true and automatically injects local file reference
// Otherwise outputs false and the plugin does nothing
requireSelfPlugin( isDevelopment )
],
})Add to your package.json:
{
// Other configurations...
"scripts": {
"dev": "vite build --mode development",
"build": "vite build --mode production",
// Other commands...
}
}How It Works
The plugin automatically:
- Identifies UserScript files by detecting the
// ==UserScript==marker - Generates the absolute file URL for the output script
- Checks if a self-referencing
@requiredirective already exists - Injects
// @require <file-URL>before the closing// ==/UserScript==marker (if it doesn't exist)
Before processing:
// ==UserScript==
// @name My Script
// @namespace https://example.com
// @version 1.0
// ==/UserScript==
console.log('Hello from UserScript!');After building:
// ==UserScript==
// @name My Script
// @namespace https://example.com
// @version 1.0
// @require file:///project-path/dist/script.js
// ==/UserScript==
console.log('Hello from UserScript!');Contributing
Contributions are welcome! Please submit issues or PRs via GitHub.
License
GPL-3 © AliubYiero
