Я пытаюсь создать расширение для Chrome и использовать Vite. Я могу собрать проект, но я не знаю, как запустить его в режиме просмотра.
пакет.json
{
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "run-p dev:main dev:background",
"dev:main": "vite build --watch",
"dev:background": "vite build --watch --config vite.chrome.background.config.ts",
"build": "tsc && vite build",
"preview": "vite preview",
"build:background:chrome": "vite build --config vite.chrome.background.config.ts",
"build-all": "run-s build build:background:chrome",
"tsc": "tsc"
},
"dependencies": {
"react": "18.2.0",
"react-dom": "18.2.0"
},
"devDependencies": {
"@types/chrome": "0.0.228",
"@types/node": "18.15.11",
"@types/react": "18.0.33",
"@types/react-dom": "18.0.11",
"@typescript-eslint/eslint-plugin": "5.57.1",
"@typescript-eslint/parser": "5.57.1",
"@vitejs/plugin-react": "2.2.0",
"eslint": "8.37.0",
"eslint-config-prettier": "8.8.0",
"eslint-plugin-import": "2.27.5",
"npm-run-all": "4.1.5",
"prettier": "2.8.7",
"typescript": "5.0.4",
"vite": "3.2.0"
},
"packageManager": "[email protected]",
"engines": {
"node": "18.15.0",
"npm": "please-use-yarn",
"yarn": "3.5.0"
}
}
vite.config.js
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
build: {
sourcemap: true,
rollupOptions: {
input: {
index: './window-index.html',
popup: './popup-index.html',
},
},
},
})
vite.chrome.background.config.ts
import { resolve } from 'path'
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
build: {
emptyOutDir: false,
outDir: resolve(__dirname, 'dist'),
sourcemap: true,
lib: {
formats: ['iife'],
entry: resolve(__dirname, './src/background/background.ts'),
name: 'background',
},
rollupOptions: {
output: {
entryFileNames: 'background.global.js',
extend: true,
},
},
},
})
Если я запускаю yarn run dev
, проект собирается без проблем.
Когда я вношу изменения в popup-index.html
или window-index.html
, это изменение отражается, но перестраивается только vite.config.js
. Другой конфиг vite.chrome.background.config.ts
не пересобран и dist
директория отсутствует background.global.js
.
Я решил это с помощью @crxjs/vite-plugin