{"id":22748,"library":"vite-plugin-moonbit","title":"vite-plugin-moonbit","description":"Vite plugin for MoonBit that allows importing MoonBit modules with the mbt: prefix. Current stable version is 0.2.1. It supports JS and WASM-GC backends, auto-starts moon build --watch, provides HMR on file changes, source maps for .mbt files, and supports MoonBit workspaces/monorepos. Key differentiators include a MoonBit-native DSL parser for moon.pkg/moon.work, query suffixes (?worker, ?url, ?raw), experimental TypeScript bridge generation via mizchi/ts.mbt, and the ability to mix multiple backends in one project. It requires vite >=5.0.0 and ships TypeScript types.","status":"active","version":"0.2.1","language":"javascript","source_language":"en","source_url":"https://github.com/mizchi/vite-plugin-moonbit","tags":["javascript","vite","vite-plugin","moonbit","mbt","typescript"],"install":[{"cmd":"npm install vite-plugin-moonbit","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-moonbit","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-moonbit","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to function as a Vite plugin","package":"vite","optional":false}],"imports":[{"note":"The plugin exports a named export 'moonbit'. Default import is not available; using it will result in undefined.","wrong":"import moonbit from 'vite-plugin-moonbit'","symbol":"moonbit","correct":"import { moonbit } from 'vite-plugin-moonbit'"},{"note":"Type imports require the 'type' modifier in TypeScript with isolatedModules enabled. This is a type exported for TypeScript users.","wrong":"import { MoonbitPluginOptions } from 'vite-plugin-moonbit'","symbol":"MoonbitPluginOptions","correct":"import { type MoonbitPluginOptions } from 'vite-plugin-moonbit'"},{"note":"Type export for the experimental tsBridge option. Available since v0.2.1.","wrong":"","symbol":"MoonbitTsBridgeOptions","correct":"import { type MoonbitTsBridgeOptions } from 'vite-plugin-moonbit'"}],"quickstart":{"code":"// vite.config.ts\nimport { defineConfig } from 'vite';\nimport { moonbit } from 'vite-plugin-moonbit';\n\nexport default defineConfig({\n  plugins: [\n    moonbit({\n      target: 'js',\n      watch: true,\n      showLogs: true,\n      prefix: 'mbt:',\n    })\n  ],\n});\n\n// main.ts\nimport { greet } from 'mbt:username/app';\n\ngreet();","lang":"typescript","description":"Basic setup with JS backend: configure Vite plugin, then import MoonBit modules using the mbt: prefix."},"warnings":[{"fix":"Use named import: import { moonbit } from 'vite-plugin-moonbit'","message":"Default export removed in v0.2.0. Previously 'import moonbit from ...' now yields undefined.","severity":"breaking","affected_versions":">=0.2.0"},{"fix":"Use 'wasm-gc' explicitly instead of 'wasm'.","message":"The 'target' option previously accepted 'wasm' as an alias for 'wasm-gc'. This alias is deprecated and may be removed.","severity":"deprecated","affected_versions":">=0.2.0"},{"fix":"Add to tsconfig.json: {\"compilerOptions\": {\"paths\": {\"mbt:*\": [\"./node_modules/vite-plugin-moonbit/types/mbt.d.ts\"]}}}","message":"TypeScript path mappings must be manually configured for IntelliSense to resolve mbt: imports. Without them, TypeScript may complain about missing modules.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Review generated bridge code and pin plugin version if stability is critical.","message":"The tsBridge option is experimental and may change in future releases. Generated bridge packages may require manual adjustments.","severity":"gotcha","affected_versions":">=0.2.1"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Change to: import { moonbit } from 'vite-plugin-moonbit'","cause":"Using default import instead of named import.","error":"TypeError: moonbit is not a function"},{"fix":"Add to tsconfig.json compilerOptions.paths: { \"mbt:*\": [\"./node_modules/vite-plugin-moonbit/types/mbt.d.ts\"] }","cause":"TypeScript cannot resolve the mbt: prefix without path mappings.","error":"Cannot find module 'mbt:username/app' or its corresponding type declarations."},{"fix":"Ensure 'moon' is installed and run 'moon build --target js' manually to see detailed errors.","cause":"MoonBit build failed; often due to missing moon toolchain or incorrect target.","error":"Error: moon build command failed with exit code 1"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}