feat: Enhance UserScript structure and functionality

- Updated package.json to include new scripts for development, production builds, linting, formatting, and cleaning.
- Added ESLint and Prettier for code quality and formatting.
- Refactored main application class to extend EventEmitter and manage modules.
- Introduced ExampleModule to demonstrate module structure and functionality.
- Created utility classes for DOM manipulation, event handling, and persistent storage.
- Added TypeScript definitions for UserScript environment.
- Improved TypeScript configuration with stricter checks and path aliases.
- Updated Vite configuration to handle development and production builds more effectively.
- Enhanced user script header generation to support environment-specific configurations.
This commit is contained in:
JonasPfalzgraf 2025-07-11 17:47:22 +02:00
parent 8089771d41
commit 88aeab8f29
17 changed files with 4064 additions and 595 deletions

View file

@ -1,21 +1,33 @@
import { defineConfig } from "vite";
import { resolve } from "path";
import { defineConfig } from "vite";
import tsconfigPaths from "vite-tsconfig-paths";
import pkgjsn from "./package.json";
export default defineConfig({
build: {
rollupOptions: {
input: resolve(__dirname, "src/index.ts"),
output: {
entryFileNames: `${pkgjsn.name}.user.js`,
dir: resolve(__dirname, "dist"),
export default defineConfig(({ mode }) => {
const isDev = mode === 'development';
return {
build: {
rollupOptions: {
input: resolve(__dirname, "src/index.ts"),
output: {
entryFileNames: `${pkgjsn.name}${isDev ? '.dev' : ''}.user.js`,
dir: resolve(__dirname, "dist"),
},
},
sourcemap: isDev ? "inline" : false,
minify: isDev ? false : 'terser',
},
plugins: [tsconfigPaths()],
resolve: {
extensions: [".tsx", ".ts", ".js"],
alias: {
'@': resolve(__dirname, 'src'),
},
},
sourcemap: "inline", // Equivalent to 'inline-source-map'
},
plugins: [tsconfigPaths()],
resolve: {
extensions: [".tsx", ".ts", ".js"],
},
define: {
__DEV__: isDev,
__VERSION__: JSON.stringify(pkgjsn.version),
},
};
});