Build a Chrome Extension with Vite.
English | 简体中文
- Chrome extension pages and content scripts supporting the use of vue, react, etc.
- Support sass/less in manifest.json.
- Support Typescript.
- In development environments, content_scripts injected pages and Chrome extensions are automatically reloaded after content_scripts and background.service_worker are modified.
# npm
npm install vite-plugin-crx-mv3 -D
# or yarn
yarn add vite-plugin-crx-mv3 -D
# or pnpm
pnpm add vite-plugin-crx-mv3 -D
- Type:
number
- Default:
8181
Create a websocket connection. Notify Chrome extension clients to reload when changes are made to the content_scripts and service_worker files.
- Type:
string
- Required :
true
Path to the chrome extension's manifest.json
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import crx from 'vite-plugin-crx-mv3'
export default defineConfig({
plugins: [
vue(),
crx({
manifest: './src/manifest.json'
}),
],
})
# development
npm run dev
# production
npm run build
Check out the examples in this repo.
- crx-basic
- crx-vue
- crx-vue-drawer
- crx-vue-multi-page
- crx-vue-antd-newtab
- crx-vue-antd-bookmarks
- crx-react
- crx-react-sandbox
- crx-solid
- crx-contentscript-sass-less
- crx-executescript-function
- crx-executescript-files
- crx-insertcss-files
- crx-devtools
examples/crx-executescript-function
examples/crx-vue-drawer
- After starting the project, you need to refresh the page manually for the first time, so that the client and the server can establish a websocket connection.
- The html file needs to be placed outside the src directory.