lisonge / vite-plugin-monkey

A vite plugin server and build your.user.js for userscript engine like Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat
MIT License
1.35k stars 71 forks source link

Monaco editor not work after build #156

Closed yunsii closed 4 months ago

yunsii commented 4 months ago

Repro: https://github.com/yunsii/vite-plugin-monkey-repro

It works in development env, but throw error after build: image

lisonge commented 4 months ago
  1. just set grant to none but you can not use gm_api image

  2. or you can use vite custom plugin

    
    import { defineConfig } from 'vite';
    import react from '@vitejs/plugin-react-swc';
    import monkey, { cdn } from 'vite-plugin-monkey';

// https://vitejs.dev/config/ export default defineConfig({ plugins: [ react(), monkey({ entry: 'src/main.tsx', userscript: { icon: 'https://vitejs.dev/logo.svg', namespace: 'npm/vite-plugin-monkey', match: ['https://www.google.com/'], }, build: { externalGlobals: { react: cdn.jsdelivr('React', 'umd/react.production.min.js'), 'react-dom': cdn.jsdelivr( 'ReactDOM', 'umd/react-dom.production.min.js' ), }, }, }), { name: 'replace-unsafeWindow', apply: 'build', transform(code, id) { if (id.includes('@monaco-editor/loader/lib/es/loader/index.js')) { return import {unsafeWindow as window} from '$';\n + code; } }, }, ], });

yunsii commented 4 months ago

Wow, it works like a charm with vite custom plugin, thx.