diff --git a/README.md b/README.md
index 2f499f5..86f0796 100644
--- a/README.md
+++ b/README.md
@@ -222,6 +222,7 @@ const value = await acquireVsCodeApi().getState();
| recommended | `boolean` | `true` | This option is intended to provide recommended default parameters and behavior. |
| extension | [ExtensionOptions](#ExtensionOptions) | | Configuration options for the vscode extension. |
| webview | `boolean` \| `string` \| [WebviewOption](#WebviewOption) | `__getWebviewHtml__` | Inject html code |
+| devtools | `boolean` | `true` | Inject script code for [react-devtools](https://github.com/facebook/react/tree/main/packages/react-devtools) or [vue-devtools](https://devtools.vuejs.org/guide/standalone) debugging |
**Notice**
@@ -240,6 +241,13 @@ Inject [@tomjs/vscode-extension-webview](https://github.com/tomjs/vscode-extensi
- vite build
- extension: Inject `import __getWebviewHtml__ from '@tomjs/vite-plugin-vscode-inject';` above the file that calls the `__getWebviewHtml__` method If is string, will set inject method name. Default is `__getWebviewHtml__`.
+**devtools**
+
+During development, support standalone development tool applications for `react` and `vue`, enabled by default.
+
+- `react`: inject ``, support [react-devtools](https://github.com/facebook/react/tree/main/packages/react-devtools)
+- `vue`: inject ``, support [vue-devtools](https://devtools.vuejs.org/guide/standalone)
+
### ExtensionOptions
Based on [Options](https://paka.dev/npm/tsup) of [tsup](https://tsup.egoist.dev/), some default values are added for ease of use.
diff --git a/README.zh_CN.md b/README.zh_CN.md
index bebb30a..300827b 100644
--- a/README.zh_CN.md
+++ b/README.zh_CN.md
@@ -226,6 +226,7 @@ const value = await acquireVsCodeApi().getState();
| recommended | `boolean` | `true` | 这个选项是为了提供推荐的默认参数和行为 |
| extension | [ExtensionOptions](#ExtensionOptions) | | vscode extension 可选配置 |
| webview | `boolean` \| `string` \| [WebviewOption](#WebviewOption) | `__getWebviewHtml__` | 注入 html 代码 |
+| devtools | `boolean` | `true` | 注入 script 代码用于 [react-devtools](https://github.com/facebook/react/tree/main/packages/react-devtools) 或 [vue-devtools](https://devtools.vuejs.org/guide/standalone) 调试 |
**Notice**
@@ -245,6 +246,13 @@ const value = await acquireVsCodeApi().getState();
- vite build
- extension: 在调用 `__getWebviewHtml__` 方法的文件上方注入 `import __getWebviewHtml__ from '@tomjs/vite-plugin-vscode-inject';` 如果为字符串,则设置注入方法名,默认为 `__getWebviewHtml__`。
+**devtools**
+
+开发阶段,支持 `react` 和 `vue` 的独立开发工具应用,默认开启。
+
+- `react`: 注入 ``,支持 [react-devtools](https://github.com/facebook/react/tree/main/packages/react-devtools)
+- `vue`: 注入 ``,支持 [vue-devtools](https://devtools.vuejs.org/guide/standalone)
+
### ExtensionOptions
继承自 [tsup](https://tsup.egoist.dev/) 的 [Options](https://paka.dev/npm/tsup),添加了一些默认值,方便使用。
@@ -292,6 +300,8 @@ const value = await acquireVsCodeApi().getState();
## Debug
+### 扩展调试
+
通过 `vscode` 运行 `Debug Extension` 调试,调试工具参考 [官方文档](https://code.visualstudio.com/docs/editor/debugging)
`launch.json` 配置如下:
@@ -368,6 +378,10 @@ const value = await acquireVsCodeApi().getState();
}
```
+### 网页调试
+
+可以使用 [react-devtools](https://github.com/facebook/react/tree/main/packages/react-devtools) 和 [vue-devtools](https://devtools.vuejs.org/guide/standalone) 的独立应用调试 `webview`
+
## 示例
先执行以下命令安装依赖,并生成库文件:
diff --git a/examples/react/package.json b/examples/react/package.json
index 6f9b6e1..0fd528a 100644
--- a/examples/react/package.json
+++ b/examples/react/package.json
@@ -36,6 +36,7 @@
"@types/react-dom": "^18.3.0",
"@types/vscode": "^1.93.0",
"@types/vscode-webview": "^1.57.5",
+ "@vitejs/plugin-react": "^4.3.3",
"@vitejs/plugin-react-swc": "^3.7.0",
"cross-env": "^7.0.3",
"typescript": "~5.5.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cdb02a1..22dce2e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -127,6 +127,9 @@ importers:
'@types/vscode-webview':
specifier: ^1.57.5
version: 1.57.5
+ '@vitejs/plugin-react':
+ specifier: ^4.3.3
+ version: 4.3.3(vite@5.4.8(@types/node@18.19.55))
'@vitejs/plugin-react-swc':
specifier: ^3.7.0
version: 3.7.1(vite@5.4.8(@types/node@18.19.55))
@@ -226,48 +229,122 @@ packages:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
'@babel/code-frame@7.23.5':
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-string-parser@7.23.4':
- resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
+ '@babel/code-frame@7.25.9':
+ resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.25.9':
+ resolution: {integrity: sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.25.9':
+ resolution: {integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.25.9':
+ resolution: {integrity: sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.25.9':
+ resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.25.9':
+ resolution: {integrity: sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.25.9':
+ resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-simple-access@7.25.9':
+ resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.25.7':
resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.22.20':
- resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.7':
resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.25.9':
+ resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.25.9':
+ resolution: {integrity: sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.24.7':
- resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
- engines: {node: '>=6.0.0'}
- hasBin: true
+ '@babel/highlight@7.25.9':
+ resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==}
+ engines: {node: '>=6.9.0'}
'@babel/parser@7.25.7':
resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/types@7.23.6':
- resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
+ '@babel/parser@7.25.9':
+ resolution: {integrity: sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9':
+ resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9':
+ resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.25.9':
+ resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.25.9':
+ resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
engines: {node: '>=6.9.0'}
'@babel/types@7.25.7':
resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.25.9':
+ resolution: {integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==}
+ engines: {node: '>=6.9.0'}
+
'@commitlint/cli@18.4.4':
resolution: {integrity: sha512-Ro3wIo//fV3XiV1EkdpHog6huaEyNcUAVrSmtgKqYM5g982wOWmP4FXvEDFwRMVgz878CNBvvCc33dMZ5AQJ/g==}
engines: {node: '>=v18'}
@@ -805,6 +882,10 @@ packages:
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.5':
+ resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/resolve-uri@3.1.1':
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
@@ -813,6 +894,10 @@ packages:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
@@ -822,6 +907,9 @@ packages:
'@jridgewell/trace-mapping@0.3.20':
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
'@microsoft/fast-element@1.12.0':
resolution: {integrity: sha512-gQutuDHPKNxUEcQ4pypZT4Wmrbapus+P9s3bR/SEOLsMbNqNoXigGImITygI5zhb+aA5rzflM6O8YWkmRbGkPA==}
@@ -1076,6 +1164,18 @@ packages:
resolution: {integrity: sha512-6gTjpPiQ/Sj9XP/JkpMGdHOwZyrQno3UAITEVVj4QOEbPDzPfFdt/qz8XY/1ps5Tx1EuWPWZTnefD4SjVTNsmA==}
engines: {node: '>=16'}
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.6.8':
+ resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.20.6':
+ resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+
'@types/css-font-loading-module@0.0.12':
resolution: {integrity: sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==}
@@ -1196,6 +1296,12 @@ packages:
peerDependencies:
vite: ^4 || ^5
+ '@vitejs/plugin-react@4.3.3':
+ resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0
+
'@vitejs/plugin-vue@5.1.4':
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -1406,6 +1512,11 @@ packages:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
+ browserslist@4.24.2:
+ resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
bundle-name@3.0.0:
resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
engines: {node: '>=12'}
@@ -1435,6 +1546,9 @@ packages:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: '>=6'}
+ caniuse-lite@1.0.30001669:
+ resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==}
+
chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
@@ -1512,6 +1626,9 @@ packages:
engines: {node: '>=16'}
hasBin: true
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
cosmiconfig-typescript-loader@5.0.0:
resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==}
engines: {node: '>=v16'}
@@ -1670,6 +1787,9 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ electron-to-chromium@1.5.45:
+ resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==}
+
emoji-regex@10.3.0:
resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
@@ -1731,6 +1851,10 @@ packages:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
@@ -1961,6 +2085,10 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -2023,6 +2151,10 @@ packages:
resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
engines: {node: '>=6'}
+ globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
@@ -2331,6 +2463,11 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -2353,6 +2490,11 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
jsonparse@1.3.1:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
@@ -2464,6 +2606,9 @@ packages:
resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
engines: {node: 14 || >=16.14}
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
@@ -2568,6 +2713,9 @@ packages:
node-html-parser@6.1.12:
resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
+ node-releases@2.0.18:
+ resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
+
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -2856,6 +3004,10 @@ packages:
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ react-refresh@0.14.2:
+ resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
+ engines: {node: '>=0.10.0'}
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -3394,6 +3546,12 @@ packages:
resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
engines: {node: '>=8'}
+ update-browserslist-db@1.1.1:
+ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -3513,6 +3671,9 @@ packages:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
@@ -3540,38 +3701,147 @@ snapshots:
'@aashutoshrathi/word-wrap@1.2.6': {}
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
'@babel/code-frame@7.23.5':
dependencies:
'@babel/highlight': 7.23.4
chalk: 2.4.2
- '@babel/helper-string-parser@7.23.4': {}
+ '@babel/code-frame@7.25.9':
+ dependencies:
+ '@babel/highlight': 7.25.9
+ picocolors: 1.1.0
+
+ '@babel/compat-data@7.25.9': {}
+
+ '@babel/core@7.25.9':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.25.9
+ '@babel/generator': 7.25.9
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-module-transforms': 7.25.9(@babel/core@7.25.9)
+ '@babel/helpers': 7.25.9
+ '@babel/parser': 7.25.9
+ '@babel/template': 7.25.9
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.25.9
+ convert-source-map: 2.0.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.25.9':
+ dependencies:
+ '@babel/types': 7.25.9
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.0.2
+
+ '@babel/helper-compilation-targets@7.25.9':
+ dependencies:
+ '@babel/compat-data': 7.25.9
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.25.9(@babel/core@7.25.9)':
+ dependencies:
+ '@babel/core': 7.25.9
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-simple-access': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.25.9': {}
+
+ '@babel/helper-simple-access@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-string-parser@7.25.7': {}
- '@babel/helper-validator-identifier@7.22.20': {}
+ '@babel/helper-string-parser@7.25.9': {}
'@babel/helper-validator-identifier@7.25.7': {}
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helpers@7.25.9':
+ dependencies:
+ '@babel/template': 7.25.9
+ '@babel/types': 7.25.9
+
'@babel/highlight@7.23.4':
dependencies:
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/helper-validator-identifier': 7.25.7
chalk: 2.4.2
js-tokens: 4.0.0
- '@babel/parser@7.24.7':
+ '@babel/highlight@7.25.9':
dependencies:
- '@babel/types': 7.23.6
+ '@babel/helper-validator-identifier': 7.25.9
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ picocolors: 1.1.0
'@babel/parser@7.25.7':
dependencies:
'@babel/types': 7.25.7
- '@babel/types@7.23.6':
+ '@babel/parser@7.25.9':
dependencies:
- '@babel/helper-string-parser': 7.23.4
- '@babel/helper-validator-identifier': 7.22.20
- to-fast-properties: 2.0.0
+ '@babel/types': 7.25.9
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.25.9)':
+ dependencies:
+ '@babel/core': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.25.9)':
+ dependencies:
+ '@babel/core': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/template@7.25.9':
+ dependencies:
+ '@babel/code-frame': 7.25.9
+ '@babel/parser': 7.25.9
+ '@babel/types': 7.25.9
+
+ '@babel/traverse@7.25.9':
+ dependencies:
+ '@babel/code-frame': 7.25.9
+ '@babel/generator': 7.25.9
+ '@babel/parser': 7.25.9
+ '@babel/template': 7.25.9
+ '@babel/types': 7.25.9
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
'@babel/types@7.25.7':
dependencies:
@@ -3579,6 +3849,11 @@ snapshots:
'@babel/helper-validator-identifier': 7.25.7
to-fast-properties: 2.0.0
+ '@babel/types@7.25.9':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
'@commitlint/cli@18.4.4(@types/node@18.19.55)(typescript@5.3.3)':
dependencies:
'@commitlint/format': 18.4.4
@@ -3960,10 +4235,18 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
+ '@jridgewell/gen-mapping@0.3.5':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/resolve-uri@3.1.1': {}
'@jridgewell/set-array@1.1.2': {}
+ '@jridgewell/set-array@1.2.1': {}
+
'@jridgewell/sourcemap-codec@1.4.15': {}
'@jridgewell/sourcemap-codec@1.5.0': {}
@@ -3971,7 +4254,12 @@ snapshots:
'@jridgewell/trace-mapping@0.3.20':
dependencies:
'@jridgewell/resolve-uri': 3.1.1
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.5.0
'@microsoft/fast-element@1.12.0': {}
@@ -4015,7 +4303,7 @@ snapshots:
fast-glob: 3.3.2
is-glob: 4.0.3
open: 9.1.0
- picocolors: 1.0.0
+ picocolors: 1.1.0
tslib: 2.6.2
'@rollup/rollup-android-arm-eabi@4.24.0':
@@ -4176,6 +4464,27 @@ snapshots:
'@tomjs/vscode-webview@2.0.0': {}
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.25.7
+ '@babel/types': 7.25.7
+ '@types/babel__generator': 7.6.8
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.6
+
+ '@types/babel__generator@7.6.8':
+ dependencies:
+ '@babel/types': 7.25.7
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.25.7
+ '@babel/types': 7.25.7
+
+ '@types/babel__traverse@7.20.6':
+ dependencies:
+ '@babel/types': 7.25.7
+
'@types/css-font-loading-module@0.0.12': {}
'@types/earcut@2.1.4': {}
@@ -4318,6 +4627,17 @@ snapshots:
transitivePeerDependencies:
- '@swc/helpers'
+ '@vitejs/plugin-react@4.3.3(vite@5.4.8(@types/node@18.19.55))':
+ dependencies:
+ '@babel/core': 7.25.9
+ '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.25.9)
+ '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.25.9)
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.14.2
+ vite: 5.4.8(@types/node@18.19.55)
+ transitivePeerDependencies:
+ - supports-color
+
'@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@18.19.55))(vue@3.5.11(typescript@5.3.3))':
dependencies:
vite: 5.4.8(@types/node@18.19.55)
@@ -4350,7 +4670,7 @@ snapshots:
'@vue/compiler-core@3.4.30':
dependencies:
- '@babel/parser': 7.24.7
+ '@babel/parser': 7.25.7
'@vue/shared': 3.4.30
entities: 4.5.0
estree-walker: 2.0.2
@@ -4604,6 +4924,13 @@ snapshots:
dependencies:
fill-range: 7.0.1
+ browserslist@4.24.2:
+ dependencies:
+ caniuse-lite: 1.0.30001669
+ electron-to-chromium: 1.5.45
+ node-releases: 2.0.18
+ update-browserslist-db: 1.1.1(browserslist@4.24.2)
+
bundle-name@3.0.0:
dependencies:
run-applescript: 5.0.0
@@ -4631,6 +4958,8 @@ snapshots:
camelcase@5.3.1: {}
+ caniuse-lite@1.0.30001669: {}
+
chalk@2.4.2:
dependencies:
ansi-styles: 3.2.1
@@ -4715,6 +5044,8 @@ snapshots:
meow: 12.1.1
split2: 4.2.0
+ convert-source-map@2.0.0: {}
+
cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.55)(cosmiconfig@8.3.6(typescript@5.3.3))(typescript@5.3.3):
dependencies:
'@types/node': 18.19.55
@@ -4868,6 +5199,8 @@ snapshots:
eastasianwidth@0.2.0: {}
+ electron-to-chromium@1.5.45: {}
+
emoji-regex@10.3.0: {}
emoji-regex@8.0.0: {}
@@ -5041,6 +5374,8 @@ snapshots:
escalade@3.1.1: {}
+ escalade@3.2.0: {}
+
escape-string-regexp@1.0.5: {}
escape-string-regexp@4.0.0: {}
@@ -5359,6 +5694,8 @@ snapshots:
functions-have-names@1.2.3: {}
+ gensync@1.0.0-beta.2: {}
+
get-caller-file@2.0.5: {}
get-east-asian-width@1.2.0: {}
@@ -5439,6 +5776,8 @@ snapshots:
kind-of: 6.0.3
which: 1.3.1
+ globals@11.12.0: {}
+
globals@13.24.0:
dependencies:
type-fest: 0.20.2
@@ -5702,6 +6041,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsesc@3.0.2: {}
+
json-buffer@3.0.1: {}
json-parse-better-errors@1.0.2: {}
@@ -5718,6 +6059,8 @@ snapshots:
dependencies:
minimist: 1.2.8
+ json5@2.2.3: {}
+
jsonparse@1.3.1: {}
jsx-ast-utils@3.3.5:
@@ -5829,6 +6172,10 @@ snapshots:
lru-cache@10.1.0: {}
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
lru-cache@6.0.0:
dependencies:
yallist: 4.0.0
@@ -5921,6 +6268,8 @@ snapshots:
css-select: 5.1.0
he: 1.2.0
+ node-releases@2.0.18: {}
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -6210,6 +6559,8 @@ snapshots:
react-is@16.13.1: {}
+ react-refresh@0.14.2: {}
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -6824,6 +7175,12 @@ snapshots:
untildify@4.0.0: {}
+ update-browserslist-db@1.1.1(browserslist@4.24.2):
+ dependencies:
+ browserslist: 4.24.2
+ escalade: 3.2.0
+ picocolors: 1.1.0
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
@@ -6976,6 +7333,8 @@ snapshots:
y18n@5.0.8: {}
+ yallist@3.1.1: {}
+
yallist@4.0.0: {}
yaml@2.3.4: {}
diff --git a/src/index.ts b/src/index.ts
index 88a4d94..9c32163 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -214,7 +214,7 @@ export function useVSCodePlugin(options?: PluginOptions): PluginOption {
devWebviewClient = readFileSync(path.join(__dirname, 'client.global.js'));
}
- let buildConfig: ResolvedConfig;
+ let resolvedConfig: ResolvedConfig;
// multiple entry index.html
const prodHtmlCache: Record = {};
@@ -225,6 +225,9 @@ export function useVSCodePlugin(options?: PluginOptions): PluginOption {
config(config) {
return handleConfig(config);
},
+ configResolved(config) {
+ resolvedConfig = config;
+ },
configureServer(server) {
if (!server || !server.httpServer) {
return;
@@ -288,6 +291,28 @@ export function useVSCodePlugin(options?: PluginOptions): PluginOption {
return html;
}
+ if (opts.devtools ?? true) {
+ let port: number | undefined;
+ if (
+ resolvedConfig.plugins.find(s =>
+ ['vite:react-refresh', 'vite:react-swc'].includes(s.name),
+ )
+ ) {
+ port = 8097;
+ } else if (resolvedConfig.plugins.find(s => ['vite:vue', 'vite:vue2'].includes(s.name))) {
+ port = 8098;
+ }
+
+ if (port) {
+ html = html.replace(
+ //i,
+ ``,
+ );
+ } else {
+ logger.warn('Only support react or vue!');
+ }
+ }
+
return html.replace(/<\/title>/i, ``);
},
},
@@ -299,7 +324,7 @@ export function useVSCodePlugin(options?: PluginOptions): PluginOption {
return handleConfig(config);
},
configResolved(config) {
- buildConfig = config;
+ resolvedConfig = config;
},
transformIndexHtml(html, ctx) {
if (!opts.webview) {
@@ -317,12 +342,12 @@ export function useVSCodePlugin(options?: PluginOptions): PluginOption {
webviewPath = genProdWebviewCode(prodHtmlCache, webview);
}
- let outDir = buildConfig.build.outDir.replace(cwd(), '').replaceAll('\\', '/');
+ let outDir = resolvedConfig.build.outDir.replace(cwd(), '').replaceAll('\\', '/');
if (outDir.startsWith('/')) {
outDir = outDir.substring(1);
}
const env = {
- NODE_ENV: buildConfig.mode || 'production',
+ NODE_ENV: resolvedConfig.mode || 'production',
VITE_WEBVIEW_DIST: outDir,
};
diff --git a/src/types.ts b/src/types.ts
index bde9ed4..c465dfd 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -61,11 +61,11 @@ export interface PluginOptions {
/**
* Inject [@tomjs/vscode-extension-webview](https://github.com/tomjs/vscode-extension-webview) into vscode extension code and web client code, so that webview can support HMR during the development stage.
*
- * * vite serve
- * * extension: Inject `import __getWebviewHtml__ from '@tomjs/vscode-extension-webview';` above the file that calls the `__getWebviewHtml__` method
- * * web: Add `` into webview client . Default is true.
+ * - true:
+ * - react: inject ``
+ * - vue: inject ``
+ * @default true
+ */
+ devtools?: boolean;
}
diff --git a/tsconfig.web.json b/tsconfig.web.json
index 17e6c20..7d33fac 100644
--- a/tsconfig.web.json
+++ b/tsconfig.web.json
@@ -2,6 +2,7 @@
"extends": "@tomjs/tsconfig/vue.json",
"include": ["src/webview/client.ts"],
"compilerOptions": {
+ "noEmit": false,
"composite": true
}
}